java excel处理框架_java处理excel的2大框架:jakarta POI和JavaExcelAPI(简称JXL)

java当初把核心处理设成Unicode,带来的好处是另代码适应了多语言环境。然而由于老外的英语只有26个字母,有些情况下,一些程序员用8

位的byte处理,一不小心就去掉了CJK的高位。或者是由于习惯在程序中采用硬编码,还有多种原因,使得许多java应用在CJK的处理上很烦恼。还好在POI

HSSF中考虑到这个问题,可以设置encoding为双字节。

POI可以到www.apache.org下载到。编译好的jar主要有这样4个:poi包,poi Browser包,poi

hdf包,poi hssf例程包。实际运行时,需要有poi包就可以了。如果用Jakarta ant编译和运行,下载apache

Jakarta POI的release中的src包,它里面已经为你生成好了build文件了。只要运行ant就可以了(ant

的安装和使用在此不说了)。如果是用Jbuilder

运行,请在新建的项目中加入poi包。以Jbuilder6为例,选择Tools菜单项的config

libraries...选项,新建一个lib。在弹出的菜单中选择poi包,如这个jakarta-poi-1.5.1-final-

20020820.jar,把poi添加到jbuilder中。然后,右键点击你的项目,在project的properties菜单中path的

required Libraries中,点add,添加刚才加入到jbuilder中的poi到你现在的项目中。如果你仅仅是为了熟悉POI

hssf的使用,可以直接看POI的samples包中的源代码,并且运行它。hssf的各种对象都有例程的介绍。hssf提供的例程在

org.apache.poi.hssf.usermodel.examples包中,共有14个,生成的目标xls都是workbook.xls。如果你想看更多的例程,可以参考hssf的Junit

test cases,在poi的包的源代码中有。hssf都有测试代码。

这里只对部分例程的实现做介绍。

HSSF提供给用户使用的对象在org.apache.poi.hssf.usermodel包中,主要部分包括Excell对象,样式和格式,还有辅助操作。有以下几种对象:

HSSFWorkbook excell的文档对象

HSSFSheet excell的表单

HSSFRow excell的行

HSSFCell excell的格子单元

HSSFFont excell字体

HSSFName 名称

HSSFDataFormat 日期格式

在poi1.7中才有以下2项:

HSSFHeader sheet头

HSSFFooter sheet尾

和这个样式

HSSFCellStyle cell样式

辅助操作包括

HSSFDateUtil 日期

HSSFPrintSetup 打印

HSSFErrorConstants 错误信息表

仔细看org.apache.poi.hssf包的结构,不难发现HSSF的内部实现遵循的是MVC模型。

这里我用Rose把org.apache.poi.hssf.usermodel包中的对象反向导入并根据相互关系作了整理,详见下面两图:

图1 基本对象

从中不难可以发现每一个基本对象都关联了一个Record对象。Record对象是一个参考Office格式的相关记录。

图2 HSSFWorkbook

HSSFWorkbook即是一个Excell对象。这幅类图体现的是HSSFWorkbook和基本对象的相互关系。可见,许多对象中也建立了

Workbook的引用。还需要注意的是在HSSFWorkbook和HSSFSheet中建立了log机制POILogger,而且POILogger

也是使用apache Log4J实现的。

先看poi的examples包中提供的最简单的例子,建立一个空xls文件。

Java代码 a4c26d1e5885305701be709a3d33442f.png

import

org.apache.poi.hssf.usermodel.HSSFWorkbook;

import

java.io.FileOutputStream;

import

java.io.IOException;

public class

NewWorkbook

{

public static void

main(String[] args)

throws IOException

{

HSSFWorkbook wb = new

HSSFWorkbook();//建立新HSSFWorkbook对象

FileOutputStream fileOut = new

FileOutputStream("workbook.xls");

wb.write(fileOut);//把Workbook对象输出到文件workbook.xls中

fileOut.close();

}

}

通过这个例子,我们建立的是一个空白的xls文件(不是空文件)。在此基础上,我们可以进一步看其它的例子。

import

org.apache.poi.hssf.usermodel.*;

import

java.io.FileOutputStream;

import

java.io.IOException;

public class

CreateCells

{

public static void

main(String[] args)

throws IOException

{

HSSFWorkbook wb = new

HSSFWorkbook();//建立新HSSFWorkbook对象

HSSFSheet sheet = wb.createSheet("new

sheet");//建立新的sheet对象

// Create a row and put some cells in it. Rows are

0 based.

HSSFRow row =

sheet.createRow((short)0);//

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值