当前位置:首页 > 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依赖:

java如何生成excel

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

基本写入操作:

java如何生成excel

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行数据但内存占用较高。

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

标签: javaexcel
分享给朋友:

相关文章

java如何学习

java如何学习

学习Java的有效方法 理解基础概念 Java是一门面向对象的编程语言,掌握基础概念如变量、数据类型、运算符、控制语句(if-else、循环)是必要的。面向对象的核心概念包括类、对象、继承、多态和封装…

如何配置java环境变量

如何配置java环境变量

下载并安装JDK 从Oracle官网或OpenJDK项目下载适合操作系统的JDK安装包。运行安装程序,按照提示完成安装,默认路径通常为C:\Program Files\Java\jdk-版本号。 配…

java如何创建项目

java如何创建项目

使用IDE创建Java项目(以IntelliJ IDEA为例) 打开IntelliJ IDEA,选择“New Project”。 在左侧菜单中选择“Java”,确保已配置JDK(若无需手动添加)。 勾…

java如何连接mysql

java如何连接mysql

连接 MySQL 数据库的基本步骤 添加 MySQL 驱动依赖 在项目中引入 MySQL 的 JDBC 驱动。如果使用 Maven,在 pom.xml 中添加以下依赖: <dependency…

java如何编写接口

java如何编写接口

编写Java接口的基本语法 在Java中,接口通过interface关键字定义,可以包含抽象方法、默认方法、静态方法和常量。 public interface MyInterface {…

如何安装java运行环境

如何安装java运行环境

下载Java开发工具包(JDK) 访问Oracle官方网站或OpenJDK项目页面,选择适合操作系统的JDK版本进行下载。Windows用户通常选择.exe安装包,macOS用户选择.dmg,Linu…