当前位置:首页 > Java

java 如何导出excel

2026-04-09 07:35:33Java

使用 Apache POI 库导出 Excel

Apache POI 是 Java 操作 Microsoft Office 文件的主流库,支持 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(String filePath) 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(filePath)) {
            workbook.write(outputStream);
        }
        workbook.close();
    }
}

使用 EasyExcel 库导出 Excel

EasyExcel 是阿里巴巴开源的 Excel 操作库,性能优异且 API 简洁:

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

public class EasyExcelExporter {
    public static class UserData {
        private String name;
        private int age;
        // getters and setters
    }

    public static void exportToExcel(String filePath) {
        List<UserData> dataList = Arrays.asList(
            new UserData("张三", 25),
            new UserData("李四", 30)
        );

        EasyExcel.write(filePath, UserData.class)
                .sheet("用户数据")
                .doWrite(dataList);
    }
}

设置单元格样式

通过 POI 可以自定义单元格样式:

java 如何导出excel

CellStyle style = workbook.createCellStyle();
Font font = workbook.createFont();
font.setBold(true);
font.setColor(IndexedColors.RED.getIndex());
style.setFont(font);

Cell cell = row.createCell(0);
cell.setCellValue("重要数据");
cell.setCellStyle(style);

导出大数据量时的优化

处理大量数据时需注意内存管理:

// 使用 SXSSFWorkbook 进行流式写入
Workbook workbook = new SXSSFWorkbook(100); // 保留100行在内存中
Sheet sheet = workbook.createSheet();

for (int i = 0; i < 100000; i++) {
    Row row = sheet.createRow(i);
    row.createCell(0).setCellValue("数据" + i);
}

导出复杂 Excel 文件

合并单元格和创建多 sheet 示例:

java 如何导出excel

// 合并单元格
sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 3));

// 创建多个sheet
Sheet sheet2 = workbook.createSheet("报表");
// 添加数据到sheet2...

常见问题解决

文件扩展名问题:XSSFWorkbook 生成 .xlsx 格式,HSSFWorkbook 生成 .xls 格式。

中文乱码问题:确保字符串使用 UTF-8 编码。

内存溢出问题:大数据量使用 SXSSFWorkbook 替代 XSSFWorkbook。

标签: javaexcel
分享给朋友:

相关文章

如何运行java文件

如何运行java文件

运行Java文件的方法 确保已安装Java Development Kit (JDK),可通过命令行输入java -version和javac -version验证安装。 编写Java代码并保存为.…

java如何避免死锁

java如何避免死锁

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

如何用java编程

如何用java编程

Java编程基础指南 环境配置 安装Java开发工具包(JDK),推荐使用最新版本。配置环境变量,确保JAVA_HOME指向JDK安装路径,并将bin目录添加到系统PATH中。验证安装是否成功: j…

java实现php

java实现php

Java 实现 PHP 功能的方法 在 Java 中实现 PHP 的功能通常涉及以下几个方面:字符串处理、Web 开发、数据库操作等。以下是几种常见需求的实现方法。 字符串处理 PHP 中的字符串处…

java如何使用

java如何使用

安装Java开发环境 下载并安装JDK(Java Development Kit),推荐从Oracle官网或OpenJDK获取最新版本。安装完成后配置环境变量,确保JAVA_HOME指向JDK安装路径…

如何运行java

如何运行java

运行Java程序的方法 安装Java开发工具包(JDK) 确保系统已安装JDK。可通过命令行输入java -version和javac -version验证是否安装成功。若未安装,需从Oracle官网…