当前位置:首页 > 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代码 使用文本编辑器或IDE(如IntelliJ IDEA、Eclipse)编写Java源代码,保存为.java文件。例如: public class HelloWorld {…

java如何上传文件

java如何上传文件

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

如何编译java文件

如何编译java文件

安装JDK 确保系统已安装Java Development Kit(JDK)。可通过命令行输入 javac -version 和 java -version 验证。若未安装,需从Oracle或Open…

java如何解决高并发

java如何解决高并发

Java 高并发解决方案 使用线程池优化资源管理 线程池(如 ThreadPoolExecutor)能避免频繁创建和销毁线程的开销。通过核心线程数、最大线程数和任务队列的合理配置,可以平衡系统负载。例…

java如何打印数组

java如何打印数组

打印数组的方法 在Java中,打印数组有多种方式,以下是几种常见的方法: 使用Arrays.toString()方法 这种方法适用于一维数组,可以快速将数组转换为字符串形式输出: int[…

java中如何获取当前时间

java中如何获取当前时间

获取当前时间的几种方法 使用 java.time 包(Java 8及以上推荐) import java.time.LocalDateTime; LocalDateTime currentTime =…