当前位置:首页 > Java

java如何导出excel

2026-04-09 07:06:28Java

使用 Apache POI 导出 Excel

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

添加依赖到 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();
        Sheet sheet = workbook.createSheet("Sheet1");

        Row headerRow = sheet.createRow(0);
        headerRow.createCell(0).setCellValue("Name");
        headerRow.createCell(1).setCellValue("Age");

        Row dataRow = sheet.createRow(1);
        dataRow.createCell(0).setCellValue("John Doe");
        dataRow.createCell(1).setCellValue(30);

        try (FileOutputStream outputStream = new FileOutputStream("output.xlsx")) {
            workbook.write(outputStream);
        }
        workbook.close();
    }
}

使用 EasyExcel 导出 Excel

EasyExcel 是阿里巴巴开源的 Excel 操作工具,性能优异且易于使用。

添加 EasyExcel 依赖:

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

定义数据模型并导出:

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

public class ExcelExporter {
    public static class User {
        private String name;
        private int age;
        // getters and setters
    }

    public static void exportToExcel() {
        List<User> users = new ArrayList<>();
        users.add(new User("John Doe", 30));
        users.add(new User("Jane Smith", 25));

        EasyExcel.write("output.xlsx", User.class).sheet("Sheet1").doWrite(users);
    }
}

导出 Excel 的高级功能

设置单元格样式:

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

合并单元格:

sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 1));

导出大数据量时使用流式处理:

// EasyExcel 自动支持流式写入
EasyExcel.write("large_data.xlsx", User.class)
    .sheet("Sheet1")
    .doWrite(dataList);

导出 Excel 的注意事项

文件路径需要确保有写入权限,否则会抛出异常。

对于大数据量导出,建议使用流式处理或分批次写入,避免内存溢出。

导出的文件格式可以是 .xls(HSSFWorkbook)或 .xlsx(XSSFWorkbook),后者支持更大的数据量。

java如何导出excel

在实际项目中,通常会将导出功能封装为服务,并提供下载接口供前端调用。

标签: javaexcel
分享给朋友:

相关文章

java如何下载

java如何下载

下载Java的步骤 访问Oracle官方网站或OpenJDK项目页面下载Java开发工具包(JDK)。Oracle JDK适用于商业用途,OpenJDK为开源版本。 打开浏览器,进入Oracle J…

如何配置java

如何配置java

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

如何学习java

如何学习java

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

java如何避免死锁

java如何避免死锁

避免死锁的方法 固定顺序获取锁 确保所有线程按照相同的顺序获取多个锁。例如,若需要获取锁A和锁B,所有线程必须先获取A再获取B,避免交叉依赖导致的死锁。这种方式破坏了“循环等待”条件。 使用锁超时机…

java如何调用另一个类的方法

java如何调用另一个类的方法

调用另一个类的方法 在Java中调用另一个类的方法,通常需要创建该类的对象或直接通过类名调用(静态方法)。以下是几种常见的方式: 通过对象实例调用实例方法 创建一个目标类的对象,通过对象调用其方法。…

教你如何完全卸载java

教你如何完全卸载java

卸载 Java 的步骤 Windows 系统 打开控制面板,选择“程序和功能”或“卸载程序”。在列表中找到 Java 相关的条目,通常显示为“Java”或“Java(TM)”。右键点击选择卸载,按照…