当前位置:首页 > 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中调用接口通常涉及实现接口或使用接口引用对象。以下是几种常见场景的示例: 定义接口 public interface MyInterface { void d…

java如何删除文件

java如何删除文件

删除文件的基本方法 使用 java.io.File 类的 delete() 方法可以删除文件。如果文件存在且删除成功,返回 true;否则返回 false。 import java.io…

java如何输入字符串

java如何输入字符串

使用 Scanner 类 在 Java 中,可以通过 java.util.Scanner 类来输入字符串。以下是一个示例代码: import java.util.Scanner; public c…

java如何创建包

java如何创建包

创建Java包的步骤 在Java中,包(package)用于组织和管理类文件,避免命名冲突。以下是创建Java包的详细方法: 定义包名 在Java源文件的开头使用package关键字声明包名。包名…

java如何运行程序

java如何运行程序

运行Java程序的步骤 安装Java开发工具包(JDK) 确保系统已安装JDK,可通过命令行输入java -version和javac -version验证。若未安装,需从Oracle官网下载并配置环…

java如何获取当前时间

java如何获取当前时间

获取当前时间的方法 在Java中,可以通过多种方式获取当前时间。以下是几种常见的方法: 使用 java.util.Date Date currentDate = new Date(); Syste…