Apache POI深度解析:轻松掌握Excel、Word文档处理技巧

Apache POI 是一个开源的Java库,用于处理 Microsoft Office 文档格式,如 .doc、.docx、.xls、.xlsx 等。它为 Java 开发者提供了读取、写入和修改这些文档格式的能力。本文将深入解析 Apache POI,帮助您轻松掌握 Excel 和 Word 文档处理技巧。
引言
Apache POI 的核心组件包括:
HSSF
:用于处理 .xls 文件(Excel 97-2003)
XSSF
:用于处理 .xlsx 文件(Excel 2007 及以后版本)
HWPF
:用于处理 .doc 文件(Word 97-2003)
XWPF
:用于处理 .docx 文件(Word 2007 及以后版本)
Apache POI 安装
要在您的项目中使用 Apache POI,您需要将其添加到项目的依赖中。以下是一个简单的 Maven 配置示例:


org.apache.poi
poi
5.2.2


org.apache.poi
poi-ooxml
5.2.2


Excel 文档处理
1. 创建和写入 Excel 文件
以下是一个使用 XSSF 创建和写入 Excel 文件的示例:
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.ss.usermodel.*;

import java.io.FileOutputStream;
import java.io.IOException;

public class ExcelExample {
public static void main(String[] args) throws IOException {
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet(“Example Sheet”);

Row row = sheet.createRow(0);
Cell cell = row.createCell(0);
cell.setCellValue(“Hello, Excel!”);

try (FileOutputStream outputStream = new FileOutputStream(“example.xlsx”)) {
workbook.write(outputStream);
}

workbook.close();
}
}
2. 读取 Excel 文件
以下是一个使用 XSSF 读取 Excel 文件的示例:
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.ss.usermodel.*;

import java.io.FileInputStream;
import java.io.IOException;

public class ExcelReadExample {
public static void main(String[] args) throws IOException {
FileInputStream inputStream = new FileInputStream(“example.xlsx”);
Workbook workbook = new XSSFWorkbook(inputStream);
Sheet sheet = workbook.getSheetAt(0);

for (Row row : sheet) {
for (Cell cell : row) {
System.out.print(cell.getStringCellValue() + ” “);
}
System.out.println();
}

workbook.close();
inputStream.close();
}
}
Word 文档处理
1. 创建和写入 Word 文件
以下是一个使用 XWPF 创建和写入 Word 文件的示例:
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;

import java.io.FileOutputStream;
import java.io.IOException;

public class WordExample {
public static void main(String[] args) throws IOException {
XWPFDocument document = new XWPFDocument();
XWPFParagraph paragraph = document.createParagraph();
XWPFRun run = paragraph.createRun();
run.setText(“Hello, Word!”);

try (FileOutputStream outputStream = new FileOutputStream(“example.docx”)) {
document.write(outputStream);
}

document.close();
}
}
2. 读取 Word 文件
以下是一个使用 XWPF 读取 Word 文件的示例:
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;

import java.io.FileInputStream;
import java.io.IOException;

public class WordReadExample {
public static void main(String[] args) throws IOException {
FileInputStream inputStream = new FileInputStream(“example.docx”);
XWPFDocument document = new XWPFDocument(inputStream);

for (XWPFParagraph paragraph : document.getParagraphs()) {
System.out.println(paragraph.getText());
}

document.close();
inputStream.close();
}
}
总结
Apache POI 是一个功能强大的库,可以轻松处理 Excel 和 Word 文档。通过本文的解析,您应该能够掌握基本的使用技巧,并在实际项目中应用这些知识。如果您需要更高级的功能,Apache POI 的官方文档提供了详细的说明和示例。