当前位置:首页 > Java

java 如何导出excel

2026-02-04 23:15:26Java

使用 Apache POI 库导出 Excel

Apache POI 是 Java 操作 Microsoft Office 文件的开源库,支持 Excel 的读写。以下是使用 POI 导出 Excel 的基本方法。

确保项目中已添加 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>

创建 Excel 文件并写入数据:

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileOutputStream;
import java.io.IOException;

public class ExcelExporter {
    public static void exportToExcel() throws IOException {
        Workbook workbook = new XSSFWorkbook(); // 创建 XLSX 文件
        Sheet sheet = workbook.createSheet("Sheet1");

        // 创建表头
        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);
        }
        workbook.close();
    }
}

使用 EasyExcel 库导出 Excel

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

添加 EasyExcel 依赖(Maven 示例):

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

通过注解定义导出模型:

import com.alibaba.excel.annotation.ExcelProperty;

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

    @ExcelProperty("年龄")
    private int age;

    // 构造方法、Getter 和 Setter 省略
}

执行导出操作:

import com.alibaba.excel.EasyExcel;
import java.util.ArrayList;
import java.util.List;

public class EasyExcelExporter {
    public static void export() {
        List<UserData> dataList = new ArrayList<>();
        dataList.add(new UserData("张三", 25));
        dataList.add(new UserData("李四", 30));

        EasyExcel.write("output.xlsx", UserData.class)
                .sheet("用户信息")
                .doWrite(dataList);
    }
}

处理大数据量导出

当数据量较大时,需采用分页查询或流式写入避免内存溢出。

使用 POI 的 SXSSFWorkbook(流式写入):

Workbook workbook = new SXSSFWorkbook(100); // 保留 100 行在内存中
// 后续操作与 XSSFWorkbook 相同

使用 EasyExcel 的分页查询写入:

EasyExcel.write("large_data.xlsx", UserData.class)
        .sheet()
        .doWrite(() -> {
            // 实现分页查询逻辑,返回 Iterable
            return fetchDataByPage(pageSize);
        });

自定义样式和格式

设置单元格样式(POI 示例):

CellStyle style = workbook.createCellStyle();
Font font = workbook.createFont();
font.setBold(true);
style.setFont(font);
cell.setCellStyle(style);

设置日期格式:

CellStyle dateStyle = workbook.createCellStyle();
CreationHelper createHelper = workbook.getCreationHelper();
dateStyle.setDataFormat(createHelper.createDataFormat().getFormat("yyyy-MM-dd"));
cell.setCellStyle(dateStyle);

java 如何导出excel

标签: javaexcel
分享给朋友:

相关文章

java如何编译

java如何编译

编译Java程序的基本步骤 安装JDK(Java Development Kit)并配置环境变量。确保javac和java命令可在命令行中运行。JDK是编译和运行Java程序的必备工具。 创建Jav…

如何配置java

如何配置java

安装Java开发工具包(JDK) 访问Oracle官方网站或OpenJDK项目页面下载适合操作系统的JDK安装包。选择与系统架构匹配的版本(如Windows x64、macOS ARM等)。运行安装程…

java如何自学

java如何自学

确定学习目标和路径 自学Java需要明确目标,例如开发Web应用、Android应用或后端服务。根据目标选择学习重点,如Java基础、Spring框架或Android开发。制定阶段性计划,从基础语法到…

如何卸载java

如何卸载java

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

java如何输入数组

java如何输入数组

输入数组的方法 在Java中,可以通过多种方式输入数组,具体取决于输入源(如控制台、文件等)和数组类型(如基本类型或对象类型)。以下是几种常见的方法: 使用Scanner从控制台输入 对于基本数据…

java如何配置环境变量

java如何配置环境变量

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