在Java中读写Excel文件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在Java中读写Excel文件

Jakarta的POI项目提供了一组操纵Windows文档的Java API,如下几个类提供了操作Excel文件的方便的途径:HSSFWorkbook、HSSFSheet、HSSFRow、HSSFCell,分别代表了Excel电子表格中的Book、Sheet、行和单元格。

你可以在下面地址下载到最新的POI工具包:

/poi/index.html

下面的代码创建一个Excel文件test.xls,并在第一行的第一格中写入一条消息:

1.import ermodel.*;

2.import java.io.FileOutputStream;

3.

4.// code run against the jakarta-poi-1.

5.0-FINAL-2002050

6.jar.

5.public class PoiTest {

6.

7.static public void main(String[] args) throws Exception {

8.FileOutputStream fos = new FileOutputStream("d:\test.xls");

9. HSSFWorkbook wb = new HSSFWorkbook();

10. HSSFSheet s = wb.createSheet();

11. wb.setSheetName(0, "first sheet");

12. HSSFRow row = s.createRow(0);

13.HSSFCell cell = row.createCell(0);

14.cell.setCellValue("Hello! This message is generated from POI.");

15. wb.write(fos);

16. fos.close();

17. }

18.

19.}

读取Excel文件时,首先生存一个POIFSFileSystem对象,由POIFSFileSystem 对象构造一个HSSFWorkbook,该HSSFWorkbook对象就代表了Excel文档。下面代码读取上面生成的Excel文件写入的消息字串:

1. POIFSFileSystem fs = null;

2. HSSFWorkbook wb = null;

3.

4.try {

5. fs = new POIFSFileSystem(new FileInputStream("d:\test.xls"));

6. wb = new HSSFWorkbook(fs);

7. } catch (IOException e) {

8. e.printStackTrace();

9. }

10. HSSFSheet sheet = wb.getSheetAt(0);

11. HSSFRow row = sheet.getRow(0);

12. HSSFCell cell = row.getCell((short) 0);

13.String msg = cell.getStringCellValue();

一、Excel基础

二、HSSF概况

三、通过usermodel读取文件

四、通过usermodel写入文件

五、通过eventusermodel读取文件

六、HSSF电子表格结构

七、通过HPSF读取文档属性

八、文档摘要信息

九、附录

━━━━━━

正文:

━━━━━━

在上一篇文章中,我们介绍了POI项目的基本概念,了解了如何用POI来读写OLE 2复合文档结构,并给出了两个简单的例子:用POI来读写Excel文件的Workbook 流。本文继续前文的话题,阐述如何用POI来读取/写入完整的Excel文件。

约定:POI项目2.0版现在已经接近正式发行阶段,开发进度迅速,不断有新的功能集成到原有的系统,同时也有对原有系统的修改。为了保证本文的及时性,本文将按照最近的1.9开发版说明。虽然编译最近的发行版源代码也能正常运行,但现在的代码和2.0的发行版会有一些出入。

一、Excel基础

Microsoft Excel 97文件格式也被称为BIFF8,最近版本的Excel只对该格式作了少量的改动。增加对新格式的支持除了增加项目的复杂性之外,唯一的效果也许只是不得不使每个用户升级代码,没有什么实际的好处。因此,在下文说明中,凡是提到Excel 97格式的地方其实都是指Excel从97到XP的格式。

二、HSSF概况

POI项目实现的Excel 97文件格式称为HSSF——也许你已经猜到,HSSF是Horrible SpreadSheet Format的缩写,也即“讨厌的电子表格格式”(微软使某些原本简单的事情过分复杂,同时又过分简单地处理了某些原本需要灵活性的事情,让人不胜佩服!)也许HSSF的名字有点滑稽,就本质而言它是一个非常严肃、正规的API。通过HSSF,你可以用纯Java代码来读取、写入、修改Excel文件。

前面一篇文章提到了POIFS,那么HSSF和POIFS又有什么关系呢?就象其他POI的API一样,HSSF建立在POIFS的基础上,因此在HSSF内的有些代码和前文的某些代码很相似。不过,当我们编写基于HSSF API的代码时,一般不需要了解POIFS API的细节。

HSSF为读取操作提供了两类API:usermodel和eventusermodel,即“用户模型”和“事件-用户模型”。前者很好理解,后者比较抽象,但操作效率要高得多。usermodel主要有ermodel和

org.apache.poi.hssf.eventusermodel包实现(在HSSF的早期版本中,

org.apache.poi.hssf.eventusermodel属于eventmodel包)。

相关文档
最新文档