java中excel的api应用1

转载 2011年04月22日 10:51:00

使用Windows操作系统的朋友对Excel(电子表格)一定不会陌生,但是要使用Java语言来操纵Excel文件并不是一件容易的事。在Web应用 日益盛行的今天,通过Web来操作Excel文件的需求越来越强烈,目前较为流行的操作是在JSP或Servlet 中创建一个CSV (comma separated values)文件,并将这个文件以MIME,text/csv类型返回给浏览器,接着浏览器调用Excel并且显示CSV文件。这样只是说可以访问到 Excel文件,但是还不能真正的操纵Excel文件,本文将给大家一个惊喜,向大家介绍一个开放源码项目,Java Excel API,使用它大家就可以方便地操纵Excel文件了。

  Java Excel API简介

   Java Excel是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容、创建新的Excel文件、更新已经存在的Excel文件。使用该 API非Windows操作系统也可以通过纯Java应用来处理Excel数据表。因为是使用Java编写的,所以我们在Web应用中可以通过JSP、 Servlet来调用API实现对Excel数据表的访问。

  现在发布的稳定版本是V2.0,提供以下功能:

   从Excel 95、97、2000等格式的文件中读取数据;
   读取Excel公式(可以读取Excel 97以后的公式);
   生成Excel数据表(格式为Excel 97);
   支持字体、数字、日期的格式化;
   支持单元格的阴影操作,以及颜色操作;
   修改已经存在的数据表;

  现在还不支持以下功能,但不久就会提供了:

   不能够读取图表信息;
   可以读,但是不能生成公式,任何类型公式最后的计算值都可以读出;
 
   应用示例

  1、从Excel文件读取数据表

   Java Excel API既可以从本地文件系统的一个文件(.xls),也可以从输入流中读取Excel数据表。读取Excel数据表的第一步是创建Workbook(术 语:工作薄),下面的代码片段举例说明了应该如何操作:(完整代码见ExcelReading.java)

import java.io.*;
import jxl.*;
… … … …
try
{
//构建Workbook对象, 只读Workbook对象
//直接从本地文件创建Workbook
//从输入流创建Workbook
InputStream is = new FileInputStream(sourcefile);
jxl.Workbook rwb = Workbook.getWorkbook(is);
}
catch (Exception e)
{
e.printStackTrace();
}


  一旦创建了Workbook,我们就可以通过它来访问Excel Sheet(术语:工作表)。参考下面的代码片段:

//获取第一张Sheet表
Sheet rs = rwb.getSheet(0);


  我们既可能通过Sheet的名称来访问它,也可以通过下标来访问它。如果通过下标来访问的话,要注意的一点是下标从0开始,就像数组一样。

  一旦得到了Sheet,我们就可以通过它来访问Excel Cell(术语:单元格)。参考下面的代码片段:

//获取第一行,第一列的值
Cell c00 = rs.getCell(0, 0);
String strc00 = c00.getContents();

//获取第一行,第二列的值
Cell c10 = rs.getCell(1, 0);
String strc10 = c10.getContents();

//获取第二行,第二列的值
Cell c11 = rs.getCell(1, 1);
String strc11 = c11.getContents();

System.out.println("Cell(0, 0)" + " value : " + strc00 + "; type : " + c00.getType());
System.out.println("Cell(1, 0)" + " value : " + strc10 + "; type : " + c10.getType());
System.out.println("Cell(1, 1)" + " value : " + strc11 + "; type : " + c11.getType());


   如果仅仅是取得Cell的值,我们可以方便地通过getContents()方法,它可以将任何类型的Cell值都作为一个字符串返回。示例代码中 Cell(0, 0)是文本型,Cell(1, 0)是数字型,Cell(1,1)是日期型,通过getContents(),三种类型的返回值都是字符型。

  如果有需要知道Cell内容的确切类型,API也提供了一系列的方法。参考下面的代码片段:

String strc00 = null;
double strc10 = 0.00;
Date strc11 = null;

Cell c00 = rs.getCell(0, 0);
Cell c10 = rs.getCell(1, 0);
Cell c11 = rs.getCell(1, 1);

if(c00.getType() == CellType.LABEL)
{
LabelCell labelc00 = (LabelCell)c00;
strc00 = labelc00.getString();
}
if(c10.getType() == CellType.NUMBER)
{
NmberCell numc10 = (NumberCell)c10;
strc10 = numc10.getvalue();
}
if(c11.getType() == CellType.DATE)
{
DateCell datec11 = (DateCell)c11;
strc11 = datec11.getDate();
}

System.out.println("Cell(0, 0)" + " value : " + strc00 + "; type : " + c00.getType());
System.out.println("Cell(1, 0)" + " value : " + strc10 + "; type : " + c10.getType());
System.out.println("Cell(1, 1)" + " value : " + strc11 + "; type : " + c11.getType());


   在得到Cell对象后,通过getType()方法可以获得该单元格的类型,然后与API提供的基本类型相匹配,强制转换成相应的类型,最后调用相应的 取值方法getXXX(),就可以得到确定类型的值。API提供了以下基本类型,与Excel的数据格式相对应,如下图所示:

  每种类型的具体意义,请参见Java Excel API document.

  当你完成对Excel电子表格数据的处理后,一定要使用close()方法来关闭先前创建的对象,以释放读取数据表的过程中所占用的内存空间,在读取大量数据时显得尤为重要。参考如下代码片段:

//操作完成时,关闭对象,释放占用的内存空间
rwb.close();


  Java Excel API提供了许多访问Excel数据表的方法,在这里我只简要地介绍几个常用的方法,其它的方法请参考附录中的Java Excel API document.

Java 操作excel表格 - JXL(Java excel api)

Java 操作excel表格Java 操作 Excel 最常用的就是JXL(Java excel api)和POI,用起来挺简单的,不过相应的其功能也并非很强大,够用就行!首先,下载jxl.jar 文...
  • qq_16559905
  • qq_16559905
  • 2017年05月22日 18:57
  • 447

有什么常用的JAVA API可以操作excel的导入导出(读取和写入)功能?

有什么常用的JAVA API可以操作excel的导入导出(读取和写入)功能? 答案: Apache POI 或者译为java poi  官网地址:http://poi.apache.org/...
  • suyu_yuan
  • suyu_yuan
  • 2016年10月04日 11:22
  • 661

java excel api(jxl.jar)库基础操作学习

读取excel JExcelApi支持从文件和输入流读取excel表格。要想读取excel第一步你应该创建一个Workbook:import java.io.File; import java.u...
  • Cloud_Huan
  • Cloud_Huan
  • 2017年03月11日 14:11
  • 870

Java POI Excel( pio:纯java操作excel的api )

POI官方网址:http://poi.apache.org/ POI的功能实在很强大,而且是apache的子项目,它下面又包含一些Component,比如处理Excel XLS,PowerPoint...
  • wugouzi
  • wugouzi
  • 2013年09月02日 14:32
  • 10496

JAVA中API的各种应用

常用 API:处理数字 Java 语言中,已经提供了大量的类库供程序开发者使用,这些类库是 Java 语言提供的、已经写好的、 用来实现常见的和通用的功能的类的集合,我们称之为“应用程序编程接口(...
  • u013402469
  • u013402469
  • 2014年02月22日 21:45
  • 1934

Java读写Excel文件(Java Excel API)

下载地址:http://www.andykhan.com/jexcelapi/download.html
  • a19881029
  • a19881029
  • 2014年07月18日 17:34
  • 4489

Java POI Excel( poi:纯java操作excel的api )

POI官方网址:http://poi.apache.org/POI的功能实在很强大,而且是apache的子项目,它下面又包含一些Component,比如处理Excel XLS,PowerPoint P...
  • feng_870906
  • feng_870906
  • 2011年04月29日 10:45
  • 6335

POI和Java Excel Api导入导出----详细到你不敢相信

来自:http://blog.csdn.net/jerehedu/article/details/45195359     一、介绍             当前B/S模式已成为应用开发的...
  • m0_37899388
  • m0_37899388
  • 2017年05月27日 09:24
  • 9896

VBA在Excel中的应用(二)

http://www.cnblogs.com/jaxu/archive/2009/04/30/1446619.html 目录  AutoFilter   Binding   Cel...
  • liuyukuan
  • liuyukuan
  • 2014年05月28日 20:11
  • 1451

使用JavaExcel API 往excel中插入图片

JavaExcel是一个操作Excel表格的开源包,网上有很多介绍他的文章,但大多是两个例子,一个读一个写。对其他的操作例如公式的计算,图表的操作基本没什么介绍,可能当时jxl的版本比较低的原因吧。今...
  • flylyke
  • flylyke
  • 2005年03月04日 00:18
  • 1667
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java中excel的api应用1
举报原因:
原因补充:

(最多只允许输入30个字)