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

相关文章

java如何

java如何

Java 基础语法 Java 是一种面向对象的编程语言,语法相对严谨。每个 Java 程序必须包含一个 main 方法作为程序入口。以下是一个简单的 Java 程序示例: public class…

如何卸载java

如何卸载java

卸载Java的步骤 Windows系统卸载方法 打开控制面板,选择“程序和功能”或“卸载程序”。在列表中找到Java相关条目(如“Java 8 Update 251”),右键选择卸载并跟随向导完成操…

如何搭建java开发环境

如何搭建java开发环境

下载并安装JDK 从Oracle官网或OpenJDK下载适合操作系统的JDK版本。运行安装程序并按照提示完成安装,建议选择默认路径以减少配置复杂度。 配置环境变量 在系统环境变量中添加JAVA_HO…

java程序如何打包

java程序如何打包

打包Java程序的方法 使用JAR打包 Java程序可以通过JAR(Java Archive)格式打包,这是一种常见的压缩格式,适用于包含多个类文件和资源的项目。以下是使用JAR打包的步骤: 确保项…

vue实现合并表格

vue实现合并表格

vue实现合并表格的方法 使用Vue实现表格合并功能可以通过多种方式完成,常见方法包括自定义渲染、利用第三方库或手动处理数据。以下是几种典型实现方案: 使用Element UI的table组件实现合…

vue表格实现多选

vue表格实现多选

实现多选表格的基础方法 在Vue中实现表格多选功能,通常需要结合el-table组件(Element UI)或v-data-table组件(Vuetify)。以下是基于Element UI的实现示例:…