当前位置:首页 > Java

java 如何导出excel

2026-03-03 10:28:00Java

使用 Apache POI 库导出 Excel

Apache POI 是一个流行的 Java 库,用于处理 Microsoft Office 格式文件,包括 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 main(String[] args) {
        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();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

使用 EasyExcel 库导出 Excel

EasyExcel 是阿里巴巴开源的 Excel 操作工具,性能优异且使用简单。以下是一个示例代码。

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

public class EasyExcelExporter {
    public static void main(String[] args) {
        String fileName = "output.xlsx";
        List<DemoData> dataList = new ArrayList<>();
        dataList.add(new DemoData("John Doe", 30));
        dataList.add(new DemoData("Jane Smith", 25));

        EasyExcel.write(fileName, DemoData.class).sheet("Sheet1").doWrite(dataList);
    }

    public static class DemoData {
        private String name;
        private int age;

        public DemoData(String name, int age) {
            this.name = name;
            this.age = age;
        }

        public String getName() { return name; }
        public int getAge() { return age; }
    }
}

导出大数据量的优化

当需要导出大量数据时,可以使用 SXSSFWorkbook(POI 的流式 API)或 EasyExcel 的流式写入功能,避免内存溢出。

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

public class LargeExcelExporter {
    public static void main(String[] args) {
        Workbook 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("Data " + i);
            row.createCell(1).setCellValue(i);
        }

        try (FileOutputStream outputStream = new FileOutputStream("large_output.xlsx")) {
            workbook.write(outputStream);
            ((SXSSFWorkbook) workbook).dispose(); // 清理临时文件
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

设置单元格样式

可以通过 Apache POI 设置单元格样式,如字体、颜色、边框等。

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

public class StyledExcelExporter {
    public static void main(String[] args) {
        Workbook workbook = new XSSFWorkbook();
        Sheet sheet = workbook.createSheet("Sheet1");

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

        Row headerRow = sheet.createRow(0);
        Cell headerCell = headerRow.createCell(0);
        headerCell.setCellValue("Header");
        headerCell.setCellStyle(headerStyle);

        try (FileOutputStream outputStream = new FileOutputStream("styled_output.xlsx")) {
            workbook.write(outputStream);
            workbook.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

以上方法涵盖了从基础到高级的 Excel 导出需求,可以根据具体场景选择合适的工具和优化方式。

java 如何导出excel

标签: javaexcel
分享给朋友:

相关文章

如何查看java版本

如何查看java版本

查看 Java 版本的方法 通过命令行工具 打开终端(Windows 为命令提示符或 PowerShell,macOS/Linux 为 Terminal),输入以下命令并回车: java -ve…

如何自学java

如何自学java

选择合适的学习资源 从官方文档开始,Oracle提供的Java官方教程(Java Tutorials)是权威且免费的学习资料。在线平台如Codecademy、Coursera或Udemy提供互动式课程…

如何运行java文件

如何运行java文件

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

如何安装java环境

如何安装java环境

下载JDK安装包 访问Oracle官方网站或OpenJDK项目页面,选择适合操作系统的JDK版本(如Windows、macOS或Linux)。确保下载与系统架构匹配的版本(32位或64位)。 运行安…

如何搭建java开发环境

如何搭建java开发环境

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

如何安装java运行环境

如何安装java运行环境

下载Java开发工具包(JDK) 访问Oracle官方网站或OpenJDK项目页面,选择适合操作系统的JDK版本进行下载。Windows用户通常选择.exe安装包,macOS用户选择.dmg,Linu…