当前位置:首页 > Java

java如何导出excel表格

2026-03-04 08:20:47Java

使用 Apache POI 库导出 Excel

Apache POI 是一个流行的 Java 库,用于处理 Microsoft Office 格式文件,包括 Excel。以下是使用 POI 导出 Excel 的基本步骤。

确保在项目中添加 Apache POI 依赖。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>

创建一个工作簿(Workbook)对象,可以是 HSSFWorkbook(.xls 格式)或 XSSFWorkbook(.xlsx 格式):

Workbook workbook = new XSSFWorkbook(); // 适用于 .xlsx
Sheet sheet = workbook.createSheet("Sheet1");

在工作表中创建行(Row)和单元格(Cell),并填充数据:

Row headerRow = sheet.createRow(0);
headerRow.createCell(0).setCellValue("姓名");
headerRow.createCell(1).setCellValue("年龄");

Row dataRow = sheet.createRow(1);
dataRow.createCell(0).setCellValue("张三");
dataRow.createCell(1).setCellValue(25);

将工作簿写入文件或输出流:

try (FileOutputStream outputStream = new FileOutputStream("output.xlsx")) {
    workbook.write(outputStream);
} catch (IOException e) {
    e.printStackTrace();
}

使用 EasyExcel 库导出 Excel

EasyExcel 是阿里巴巴开源的 Excel 操作工具,性能优异且 API 简洁。

添加 EasyExcel 依赖:

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

定义一个数据模型类,用于映射 Excel 列:

@Data
public class UserData {
    @ExcelProperty("姓名")
    private String name;

    @ExcelProperty("年龄")
    private Integer age;
}

使用 EasyExcel 写入数据到 Excel 文件:

List<UserData> dataList = new ArrayList<>();
dataList.add(new UserData("张三", 25));
dataList.add(new UserData("李四", 30));

String fileName = "output.xlsx";
EasyExcel.write(fileName, UserData.class).sheet("Sheet1").doWrite(dataList);

处理大数据量导出

对于大数据量导出,可以使用 POI 的 SXSSFWorkbook 或 EasyExcel 的流式写入,避免内存溢出。

使用 SXSSFWorkbook:

SXSSFWorkbook workbook = new SXSSFWorkbook(100); // 保留 100 行在内存中
Sheet sheet = workbook.createSheet("Sheet1");

for (int i = 0; i < 10000; i++) {
    Row row = sheet.createRow(i);
    row.createCell(0).setCellValue("数据" + i);
}

try (FileOutputStream outputStream = new FileOutputStream("large.xlsx")) {
    workbook.write(outputStream);
}
workbook.dispose(); // 清理临时文件

使用 EasyExcel 流式写入:

java如何导出excel表格

String fileName = "large.xlsx";
EasyExcel.write(fileName, UserData.class)
    .sheet("Sheet1")
    .doWrite(dataList); // dataList 可以是分批加载的数据

标签: 表格java
分享给朋友:

相关文章

vue实现表格数据修改

vue实现表格数据修改

实现表格数据修改的基本思路 在Vue中实现表格数据修改通常涉及以下核心步骤:数据绑定、编辑状态切换、表单输入处理和数据提交。以下是一个典型实现方案: 数据绑定与渲染 使用v-for指令循环渲染表格数…

如何学习java

如何学习java

学习Java的步骤 理解基础知识 从Java的基本语法开始,包括变量、数据类型、运算符、控制流(if-else、循环)等。掌握这些基础概念是后续学习的基石。 学习面向对象编程(OOP) Java是一…

css制作表格

css制作表格

CSS 制作表格的方法 使用 CSS 可以灵活地创建和样式化表格,以下是几种常见的方法: 使用 HTML 表格标签结合 CSS 样式 通过 HTML 的 <table>、<tr&g…

java如何创建类

java如何创建类

创建类的基本语法 在Java中,类通过class关键字定义,语法如下: [访问修饰符] class 类名 { // 成员变量(属性) // 构造方法 // 成员方法 }…

java如何产生随机数

java如何产生随机数

使用 Math.random() 方法 Math.random() 生成一个范围在 [0.0, 1.0) 的伪随机 double 值。通过缩放和偏移可以生成指定范围的随机数。 double ra…

如何安装java软件

如何安装java软件

下载Java安装包 访问Oracle官方网站或OpenJDK开源项目页面,选择适合操作系统的Java版本(如Windows、macOS或Linux)。对于个人使用,通常下载JDK(Java Devel…