当前位置:首页 > Java

java如何生成excel

2026-02-05 13:48:53Java

使用Apache POI库生成Excel文件

Apache POI是Java操作Microsoft Office文件的主流库,支持Excel的.xls和.xlsx格式。

添加Maven依赖:

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

创建XSSFWorkbook对象(对应.xlsx格式):

Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet1");

写入数据到单元格:

Row row = sheet.createRow(0);
Cell cell = row.createCell(0);
cell.setCellValue("Hello Excel");

设置单元格样式:

CellStyle style = workbook.createCellStyle();
style.setFillForegroundColor(IndexedColors.YELLOW.getIndex());
style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
cell.setCellStyle(style);

保存文件到本地:

try (FileOutputStream out = new FileOutputStream("workbook.xlsx")) {
    workbook.write(out);
}

使用EasyExcel库生成Excel文件

EasyExcel是阿里开源的Excel操作工具,内存消耗更低,适合大数据量导出。

添加Maven依赖:

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>easyexcel</artifactId>
    <version>3.3.2</version>
</dependency>

定义数据模型:

@Data
public class DemoData {
    @ExcelProperty("字符串标题")
    private String string;
    @ExcelProperty("日期标题")
    private Date date;
    @ExcelProperty("数字标题")
    private Double doubleData;
}

简单写入:

List<DemoData> list = new ArrayList<>();
EasyExcel.write("easyexcel.xlsx", DemoData.class).sheet("模板").doWrite(list);

使用JExcelAPI生成Excel文件

JExcelAPI是较老的Excel操作库,仅支持.xls格式。

添加Maven依赖:

<dependency>
    <groupId>net.sourceforge.jexcelapi</groupId>
    <artifactId>jxl</artifactId>
    <version>2.6.12</version>
</dependency>

基本写入操作:

WritableWorkbook workbook = Workbook.createWorkbook(new File("output.xls"));
WritableSheet sheet = workbook.createSheet("Sheet1", 0);
Label label = new Label(0, 0, "Test");
sheet.addCell(label);
workbook.write();
workbook.close();

性能优化建议

大数据量导出时使用SXSSFWorkbook(POI的流式API):

Workbook workbook = new SXSSFWorkbook(100); // 保留100行在内存中

使用模板方式填充数据,避免频繁创建样式对象。

对于只读场景考虑使用事件模式(POI的Event API)减少内存占用。

文件格式选择

XLS格式(HSSFWorkbook)最大支持65536行数据。

XLSX格式(XSSFWorkbook)支持1048576行数据但内存占用较高。

java如何生成excel

SXSSFWorkbook通过滑动窗口机制支持超大数据量导出。

标签: javaexcel
分享给朋友:

相关文章

java如何配置环境变量

java如何配置环境变量

配置Java环境变量的方法 下载并安装JDK 从Oracle官网或OpenJDK下载适合操作系统的JDK安装包。运行安装程序并按照提示完成安装,记下JDK的安装路径(例如C:\Program File…

如何启用java

如何启用java

启用 Java 的方法 检查 Java 是否已安装 在命令行或终端输入 java -version,如果显示版本信息,说明 Java 已安装。若未安装,需从 Oracle 官网 或 OpenJDK 下…

如何学习java语言

如何学习java语言

学习Java语言的系统方法 理解基础概念 Java是一种面向对象的编程语言,掌握基础概念如变量、数据类型、运算符、控制流语句(if-else、循环)是第一步。熟悉类和对象的概念,理解封装、继承和多态三…

如何升级java

如何升级java

检查当前Java版本 在升级之前,需确认当前安装的Java版本。在终端或命令提示符中运行以下命令: java -version 输出会显示当前Java版本(如1.8.0_301或17.0.2)。…

win7如何配置java环境变量

win7如何配置java环境变量

下载并安装Java 从Oracle官网下载适合的Java Development Kit (JDK)安装包,选择与系统位数(32位或64位)匹配的版本。运行安装程序,按照提示完成安装,默认路径通常为C…

如何学习好java

如何学习好java

掌握Java基础知识 学习Java的第一步是掌握其基础知识,包括数据类型、变量、运算符、控制流语句(如if-else、for循环、while循环)以及数组。这些是构建更复杂程序的基石。可以通过在线教程…