在Java中处理Excel:Apache POI及其替代方案

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

在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}

推荐