在Java中处理Excel:库概览与实践示例
在企业级Java开发中,经常需要以编程方式创建、读取和修改Excel电子表格。这可能涉及生成报告、从外部系统导入数据或导出计算结果。本文将介绍Java中处理Excel的主要库、它们的特点,并提供清晰的代码示例。
为什么是Java,而不是Python?
尽管我们的网站名为PythonLib,但Java仍然是企业级开发中最流行的语言之一。许多公司积极使用Java进行服务器端应用程序开发,而与Excel的集成是一项常见的需求。理解如何在Java中处理Excel,对初学者和经验丰富的开发者都很有帮助。
Java中处理Excel的主要库
有几个成熟的库,每个都有其优势:
- Apache POI — 最流行且功能最全面的库。支持.xls(HSSF)和.xlsx(XSSF)格式。可以创建、读取和修改文件,支持公式、样式和图表。
- JExcelApi (jxl) — 一个更轻量级的库,仅支持旧的.xls格式。适用于简单任务,但自2009年以来已停止更新。
- Apache POI + XSSF/SXSSF — 用于处理大型文件的高级功能。SXSSF(流式处理)可以处理数百万行数据,内存占用低。
- Docx4j — 用于处理Office Open XML的库,可用于.xlsx,但更常用于Word。
开始使用Apache POI
要将该库添加到Maven项目,请在pom.xml中添加以下依赖:
<!-- 用于处理.xls (HSSF) --><dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>5.2.5</version></dependency>
<!-- 用于处理.xlsx (XSSF) --><dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>5.2.5</version></dependency>如果您使用Gradle,请在build.gradle中添加以下行:
implementation 'org.apache.poi:poi:5.2.5'implementation 'org.apache.poi:poi-ooxml:5.2.5'示例:创建包含表格的Excel文件
我们来看一个创建包含员工数据的.xlsx文件的简单示例。
import org.apache.poi.ss.usermodel.*;import org.apache.poi.xssf.usermodel.XSSFWorkbook;import java.io.FileOutputStream;import java.io.IOException;
public class ExcelWriter { public static void main(String[] args) { // 创建一个新的工作簿 try (Workbook workbook = new XSSFWorkbook()) { // 创建一个工作表 Sheet sheet = workbook.createSheet("员工");
// 创建标题行 Row headerRow = sheet.createRow(0); String[] columns = {"ID", "姓名", "职位", "薪资"}; for (int i = 0; i < columns.length; i++) { Cell cell = headerRow.createCell(i); cell.setCellValue(columns[i]); // 将标题设为粗体 CellStyle style = workbook.createCellStyle(); Font font = workbook.createFont(); font.setBold(true); style.setFont(font); cell.setCellStyle(style); }
// 填充数据 Object[][] data = { {1, "伊万·伊万诺夫", "开发人员", 150000}, {2, "彼得·彼得罗夫", "分析师", 120000}, {3, "西多尔·西多罗夫", "经理", 180000}