当前位置:首页 > Java

java如何导出excel

2026-02-04 22:46:56Java

使用 Apache POI 导出 Excel

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

添加依赖 在 Maven 项目的 pom.xml 中添加以下依赖:

<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 文件 以下代码演示如何创建一个简单的 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("姓名");
        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 操作工具,性能优异且易于使用。

添加依赖pom.xml 中添加 EasyExcel 依赖:

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

定义数据模型 创建一个简单的数据模型类:

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

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

导出 Excel 使用 EasyExcel 导出数据到 Excel:

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

        String fileName = "easyexcel_output.xlsx";
        EasyExcel.write(fileName, UserData.class).sheet("用户数据").doWrite(dataList);
    }
}

处理大数据量导出

对于大数据量导出,可以使用分页查询和流式写入,避免内存溢出。

分页查询与写入 以下示例展示如何分页处理数据并写入 Excel:

public class LargeDataExporter {
    public static void exportLargeData() {
        String fileName = "large_data.xlsx";
        ExcelWriter excelWriter = EasyExcel.write(fileName, UserData.class).build();

        try {
            WriteSheet writeSheet = EasyExcel.writerSheet("大数据").build();

            // 模拟分页查询
            int pageSize = 1000;
            for (int page = 1; page <= 10; page++) {
                List<UserData> data = queryDataByPage(page, pageSize);
                excelWriter.write(data, writeSheet);
            }
        } finally {
            excelWriter.finish();
        }
    }

    private static List<UserData> queryDataByPage(int page, int pageSize) {
        // 实现分页查询逻辑
        return new ArrayList<>();
    }
}

自定义样式与格式

可以通过设置单元格样式调整字体、颜色、对齐方式等。

设置单元格样式 以下代码展示如何设置单元格样式:

java如何导出excel

public class StyleExporter {
    public static void exportWithStyle() throws IOException {
        Workbook workbook = new XSSFWorkbook();
        Sheet sheet = workbook.createSheet("样式示例");

        // 创建字体样式
        Font headerFont = workbook.createFont();
        headerFont.setBold(true);
        headerFont.setColor(IndexedColors.BLUE.getIndex());

        // 创建单元格样式
        CellStyle headerStyle = workbook.createCellStyle();
        headerStyle.setFont(headerFont);
        headerStyle.setAlignment(HorizontalAlignment.CENTER);

        // 应用样式
        Row headerRow = sheet.createRow(0);
        Cell headerCell = headerRow.createCell(0);
        headerCell.setCellValue("带样式的表头");
        headerCell.setCellStyle(headerStyle);

        // 写入文件
        try (FileOutputStream outputStream = new FileOutputStream("styled_output.xlsx")) {
            workbook.write(outputStream);
        }
        workbook.close();
    }
}

以上方法涵盖了从基础导出到高级功能的需求,可以根据具体场景选择适合的方案。

标签: javaexcel
分享给朋友:

相关文章

java如何调用方法

java如何调用方法

调用方法的基本语法 在Java中,调用方法需要明确方法所属的对象(实例方法)或类(静态方法),并传递必要的参数。语法格式如下: 实例方法:对象名.方法名(参数列表); 静态方法:类名.方法名…

如何配置java环境

如何配置java环境

下载JDK安装包 访问Oracle官网或OpenJDK官网,选择适合操作系统的JDK版本(如Windows、macOS或Linux)。下载完成后,运行安装程序并按照提示完成安装。 设置环境变量 右键…

java如何输出数组

java如何输出数组

输出数组的方法 在Java中,输出数组内容有多种方式,具体取决于数组类型和输出格式需求。以下是几种常见的方法: 使用Arrays.toString()方法 适用于一维数组,直接调用Arrays.to…

java如何创建数组

java如何创建数组

创建数组的基本方法 在Java中,数组是固定大小的同类型元素集合。创建数组需要声明数组类型并初始化。 声明数组 语法格式为 数据类型[] 数组名 或 数据类型 数组名[]: int[] arr1;…

java如何配置环境变量

java如何配置环境变量

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

java如何产生随机数

java如何产生随机数

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