当前位置:首页 > Java

java如何生成excel

2026-03-04 01:04:38Java

使用 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 ExcelGenerator {
    public static void main(String[] args) 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();
    }
}

依赖配置(Maven):

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>5.2.3</version>
</dependency>

使用 EasyExcel 库生成 Excel

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

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

public class EasyExcelExample {
    public static class User {
        private String name;
        private int age;
        // 省略 getter/setter
    }

    public static void main(String[] args) {
        List<User> data = new ArrayList<>();
        data.add(new User("张三", 25));
        data.add(new User("李四", 30));

        EasyExcel.write("output.xlsx", User.class)
                .sheet("用户列表")
                .doWrite(data);
    }
}

依赖配置(Maven):

java如何生成excel

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

使用 JExcelAPI 生成 Excel(仅支持 XLS)

JExcelAPI 是一个轻量级库,适合处理旧版 Excel 格式(.xls)。

import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import java.io.File;

public class JExcelExample {
    public static void main(String[] args) throws Exception {
        WritableWorkbook workbook = Workbook.createWorkbook(new File("output.xls"));
        WritableSheet sheet = workbook.createSheet("Sheet1", 0);

        sheet.addCell(new Label(0, 0, "姓名"));
        sheet.addCell(new Label(1, 0, "年龄"));
        sheet.addCell(new Label(0, 1, "张三"));
        sheet.addCell(new Label(1, 1, "25"));

        workbook.write();
        workbook.close();
    }
}

依赖配置(Maven):

<dependency>
    <groupId>net.sourceforge.jexcelapi</groupId>
    <artifactId>jxl</artifactId>
    <version>2.6.12</version>
</dependency>

生成 Excel 的高级功能

  1. 样式设置(Apache POI 示例):

    java如何生成excel

    CellStyle style = workbook.createCellStyle();
    Font font = workbook.createFont();
    font.setBold(true);
    style.setFont(font);
    headerRow.getCell(0).setCellStyle(style);
  2. 合并单元格

    sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 2));
  3. 公式计算

    dataRow.createCell(2).setCellFormula("A2*B2");

根据需求选择合适的库:

  • Apache POI:功能全面,支持复杂操作。
  • EasyExcel:适合大数据量和简单导出。
  • JExcelAPI:仅需处理旧版 Excel 时使用。

标签: javaexcel
分享给朋友:

相关文章

java如何编程

java如何编程

Java编程基础 Java是一种面向对象的编程语言,广泛应用于企业级开发、移动应用(Android)等领域。以下是Java编程的核心步骤和示例。 环境搭建 安装JDK 从Oracle官网下载适合…

java如何自学

java如何自学

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

java如何上传文件

java如何上传文件

使用HttpURLConnection上传文件 在Java中,可以通过HttpURLConnection实现文件上传功能。需要设置请求头为multipart/form-data,并构建包含文件数据的请…

如何安装java软件

如何安装java软件

下载Java安装包 访问Oracle官方网站或OpenJDK开源项目页面,选择适合操作系统的Java版本(如Windows、macOS或Linux)。对于个人使用,通常下载JDK(Java Devel…

java如何遍历map

java如何遍历map

遍历Map的几种方法 在Java中,遍历Map有多种方式,可以根据需求选择合适的方法。以下是常见的几种遍历方式: 使用entrySet遍历 通过entrySet()方法获取键值对的集合,可以同时访问…

java如何调试

java如何调试

调试Java程序的基本方法 使用IDE内置的调试工具(如IntelliJ IDEA或Eclipse)是最常见的方式。在代码行号旁点击设置断点,启动调试模式后,程序会在断点处暂停,允许查看变量值、调用栈…