当前位置:首页 > 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
分享给朋友:

相关文章

表格制作css

表格制作css

基础表格样式 使用CSS可以轻松地为HTML表格添加样式。以下是一个基础表格的HTML和CSS示例: <table class="basic-table"> <thead>…

java如何上传文件

java如何上传文件

使用HttpURLConnection上传文件 在Java中,可以通过HttpURLConnection实现文件上传功能。需要设置请求头为multipart/form-data,并构建包含文件数据的请…

java前景如何

java前景如何

Java 当前的市场需求 Java 在企业级开发、大数据、云计算等领域仍占据重要地位。许多大型企业(如银行、电商平台)依赖 Java 构建后端系统。招聘平台数据显示,Java 开发岗位数量稳定,尤其在…

如何学好java

如何学好java

理解基础概念 掌握Java的核心概念是学习的基础。包括数据类型、变量、运算符、控制流(如循环和条件语句)、数组等。理解面向对象编程(OOP)的四大特性:封装、继承、多态和抽象。 实践编程练习 通过实…

java如何连接数据库

java如何连接数据库

Java连接数据库的方法 Java连接数据库通常使用JDBC(Java Database Connectivity)技术,以下是具体步骤和示例代码。 加载数据库驱动 在连接数据库之前,需要加载对应的…

vue表格实现导出

vue表格实现导出

使用 vue-json-excel 插件 安装插件: npm install vue-json-excel --save 在组件中引入并注册: import JsonExcel from 'vue…