Java中读写Excel文件
JakartaPOI项目提供了一组操纵Windows文档的Java API,如下几个类提供了操作Excel文件的方便的途径: HSSFWorkbookHSSFSheetHSSFRowHSSFCell,分别代表了Excel电子表格中的BookSheet、行和单元格。
你可以在下面地址下载到最新的POI工具包:
    /poi/index.html
下面的代码创建一个Excel文件test.xls,并在第一行的第一格中写入一条消息:
1. import org.apache.poi.hssf.usermodel.*;
2. import java.io.FileOutputStream;
3.
4. // code run against the jakarta-poi-1.5.0-FINAL-20020506.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 =&ateSheet();
11.         wb.setSheetName(0, "first sheet");
12.         HSSFRow row =&ateRow(0);
13. HSSFCell cell =&ateCell(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 =&SheetAt(0);
11.     HSSFRow row =&Row(0);java中index是什么意思
12.     HSSFCell cell =&Cell((short) 0);
13. String msg =&StringCellValue();



一、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格式的地方其实都是指Excel97XP的格式。 

  二、HSSF概况 

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

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

  HSSF读取操作提供了两类APIusermodeleventusermodel,即用户模型事件-用户模型。前者很好理解,后者比较抽象,但操作效率要高得多。usermodel主要有org.apache.poi.hssf.usermodel org.apache.poi.hssf.eventusermodel包实现(在HSSF的早期版本中, org.apache.poi.hssf.eventusermodel属于eventmodel包)。 

  usermodel包把Excel文件映射成我们熟悉的结构,诸如WorkbookSheetRowCell等,它把整个结构以一组对象的形式保存在内存之中。eventusermodel要求用户熟悉文件格式的底层结构,它的操作风格类似于XMLSAX APIAWT的事件模型(这就是eventus
ermodel名称的起源),要掌握窍门才能用好。另外,eventusermodelAPI只提供读取文件的功能,也就是说不能用这个API来修改文件。 

  三、通过usermodel读取文件 

  用HSSFusermodel读取文件很简单。首先创建一个InputStream,然后创建一个HSSFWorkbook 

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。