Java POI - Office的Java处理包

发布时间 2023-06-16 15:41:57作者: 林猫

介绍

Apache POI 是基于 Office Open XML 标准(OOXML)和 Microsoft 的 OLE 2 复合文档格式(OLE2)处理各种文件格式的开源项目。 简而言之,您可以使用 Java 读写 MS Excel 文件,可以使用 Java 读写 MS Word 和 MS PowerPoint 文件

模块分类

  • HSSF - 提供读写 Microsoft Excel XLS 格式 (Microsoft Excel 97 (-2003)) 档案的功能。
  • XSSF - 提供读写 Microsoft Excel OOXML XLSX 格式 (Microsoft Excel XML (2007+)) 档案的功能。
  • SXSSF - 提供低内存占用量读写 Microsoft Excel OOXML XLSX 格式档案的功能。
  • HWPF - 提供读写 Microsoft Word DOC97 格式 (Microsoft Word 97 (-2003)) 档案的功能。
  • XWPF - 提供读写 Microsoft Word DOC2003 格式 (WordprocessingML (2007+)) 档案的功能。
  • HSLF/XSLF - 提供读写 Microsoft PowerPoint 格式档案的功能。
  • HDGF/XDGF - 提供读 Microsoft Visio 格式档案的功能。
  • HPBF - 提供读 Microsoft Publisher 格式档案的功能。
  • HSMF - 提供读 Microsoft Outlook 格式档案的功能。

Maven依赖

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>4.1.2</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>4.1.2</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml-schemas</artifactId>
    <version>4.1.2</version>
</dependency>

代码示例

  • 处理Excel文档示例:
for(short rownum = (short)0; rownum < 30; rownum++) {
  HSSFRow r = s.createRow(rownum);
  for(short cellnum = (short)0; cellnum < 10; cellnum += 2) {
    HSSFCell c = r.createCell(cellnum);
    HSSFCell c2 = r.createCell(cellnum+1);

    c.setCellValue((double)rownum + (cellnum/10));
    c2.setCellValue(new HSSFRichTextString("Hello! " + cellnum);
  }
}
  • 处理Word文档示例:
XWPFDocument doc = new XWPFDocument();
XWPFParagraph paragraph = doc.createParagraph();
paragraph.createRun().setText("为这个段落追加文本");
try (FileOutputStream out = new FileOutputStream("simple.docx")) {
    doc.write(out);
}