没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
18页
使用Windows操作系统的朋友对Excel(电子表格)一定不会陌生,但是要使用Java语言来操纵Excel文件并不是一件容易的事。在Web应用日益盛行的今天,通过Web来操作Excel文件的需求越来越强烈,目前较为流行的操作是在JSP或Servlet 中创建一个CSV (comma separated values)文件,并将这个文件以MIME,text/csv类型返回给浏览器,接着浏览器调用Excel并且显示CSV文件。这样只是说可以访问到Excel文件,但是还不能真正的操纵Excel文件,本文将给大家一个惊喜,向大家介绍一个开放源码项目,Java Excel API,使用它大家就可以方便地操纵Excel文件了。
资源推荐
资源详情
资源评论
更多资源点击查看
其它文件操作
使用 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 不能够读取图表信息;
2 可以读,但是不能生成公式,任何类型公式最后的计算值都可以读出;
应用示例
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。
Workbook 类提供的方法
剩余17页未读,继续阅读
资源评论
taoming528
- 粉丝: 1
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功