POI中文帮助文档.docVIP

  • 638
  • 0
  • 约1.75万字
  • 约 20页
  • 2020-08-19 发布于湖北
  • 举报
7.3? 使用POI来处理Excel和Word文件格式 Microsoft的Office系列产品拥有大量的用户,Word、Excel也成为办公文件的首选。在Java中,已经有很多对于Word、Excel的开源的解决方案,其中比较出色的是Apache的Jakata项目的POI子项目。该项目的官方网站是/poi/。 POI包括一系列的API,它们可以操作基于MicroSoft OLE 2 Compound Document Format的各种格式文件,可以通过这些API在Java中读写Excel、Word等文件。POI是完全的Java Excel和Java Word解决方案。POI子项目包括:POIFS、HSSF、HDF、HPSF。表7-2对它们进行了简要介绍。 表7-2? POI子项目介绍 子项目名 说明 POIFS(POI File System) POIFS是POI项目中最早的最基础的一个模块,是Java到OLE 2 Compound Document Format的接口,支持读写功能,所有的其他项目都依赖与该项目。 HSSF(Horrible Spreadsheet Format) HSSF是Java到Microsoft Excel 97(-2002)文件的接口,支持读写功能 HWPF(Horrible Word Processing Format) HWPF是Java到Microsoft Word 97文件的接口,支持读写功能,但目前该模块还处于刚开始开发阶段,只能实现一些简单文件的操作,在后续版本中,会提供更强大的支持 HPSF(Horrible Property Set Format) HPSF 是Java到OLE 2 Compound Document Format文件的属性设置的接口,属性设置通常用来设置文档的属性(标题,作者,最后修改日期等),还可以设置用户定义的属性。HPSF支持读写功能,当前发布版本中直支持读功能。 7.3.1? 对Excel的处理类 下面通过HSSF提供的接口对Excel文件经行处理。首先需要下载POI的包,可以到apache的官方网站下载,地址为:/jakarta/poi/,本书采用的是poi-2.5.1-finaljar,读者可以下载当前的稳定版本。把下载的包按照前面介绍的方式加入Build Path,然后新建一个ch7.poi包,并创建一个ExcelReader类。 ExcelReader类可以读取一个XLS文件,然后将其内容逐行提取出来,写入文本文件。其代码如下。 代码7.6 public class ExcelReader { ?? // 创建文件输入流 ?? private BufferedReader reader = null; ?? // 文件类型 ?? private String filetype; ?? // 文件二进制输入流 ?? private InputStream is = null; ?? // 当前的Sheet ?? private int currSheet; ?? // 当前位置 ?? private int currPosition; ?? // Sheet数量 ?? private int numOfSheets; ?? // HSSFWorkbook ?? HSSFWorkbook workbook = null; ?? // 设置Cell之间以空格分割 ?? private static String EXCEL_LINE_DELIMITER = ; ?? // 设置最大列数 ?? private static int MAX_EXCEL_COLUMNS = 64; ?? // 构造函数创建一个ExcelReader ?? public ExcelReader(String inputfile) throws IOException, Exception { ????? // 判断参数是否为空或没有意义 ????? if (inputfile == null || inputfile.trim().equals()) { ???????? throw new IOException(no input file specified); ????? } ????? // 取得文件名的后缀名赋值给filetype ????? this.filetype = inputfile.substring(inputfile.lastIndexOf(.) + 1); ????? // 设置开始行为0 ????? currPosition = 0; ????? // 设置当前位置为0 ????? currSheet = 0; ?????

文档评论(0)

1亿VIP精品文档

相关文档