当前位置:首页 > Java

java 如何控制excel

2026-03-24 10:19:06Java

使用 Apache POI 库操作 Excel

Apache POI 是 Java 操作 Excel 文件的主流库,支持读写 .xls.xlsx 格式。需引入以下依赖(Maven 示例):

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

创建并写入 Excel 文件

Workbook workbook = new XSSFWorkbook(); // .xlsx 格式
Sheet sheet = workbook.createSheet("Sheet1");
Row row = sheet.createRow(0);
row.createCell(0).setCellValue("Hello");
row.createCell(1).setCellValue("World");

try (FileOutputStream fos = new FileOutputStream("output.xlsx")) {
    workbook.write(fos);
}

读取 Excel 文件

Workbook workbook = WorkbookFactory.create(new File("input.xlsx"));
Sheet sheet = workbook.getSheetAt(0);
for (Row row : sheet) {
    for (Cell cell : row) {
        System.out.print(cell.toString() + "\t");
    }
    System.out.println();
}

使用 EasyExcel 处理大数据量

EasyExcel 是阿里开源的 Excel 工具,适合大数据量场景(基于 POI 优化)。引入依赖:

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

快速写入示例

List<DemoData> dataList = Arrays.asList(new DemoData("A1"), new DemoData("A2"));
EasyExcel.write("output.xlsx", DemoData.class).sheet().doWrite(dataList);

监听器模式读取(避免内存溢出)

EasyExcel.read("input.xlsx", DemoData.class, new AnalysisEventListener<DemoData>() {
    @Override
    public void invoke(DemoData data, AnalysisContext context) {
        System.out.println(data); // 逐行处理
    }
}).sheet().doRead();

使用 JExcelAPI 操作旧版 Excel

JExcelAPI 专用于 .xls 格式,轻量但功能较少:

WritableWorkbook workbook = Workbook.createWorkbook(new File("output.xls"));
WritableSheet sheet = workbook.createSheet("Sheet1", 0);
Label label = new Label(0, 0, "Test");
sheet.addCell(label);
workbook.write();
workbook.close();

通过模板引擎生成 Excel

若需复杂格式,可结合模板引擎(如 Thymeleaf、Velocity)生成 HTML,再转换为 Excel。例如使用 Flying Saucer 将 HTML 转 XLS:

java 如何控制excel

String html = "<table><tr><td>Content</td></tr></table>";
OutputStream os = new FileOutputStream("output.xls");
ITextRenderer renderer = new ITextRenderer();
renderer.setDocumentFromString(html);
renderer.layout();
renderer.createPDF(os);
os.close();

注意事项

  • 处理大数据时推荐使用 EasyExcel 的流式读写
  • 写入公式需调用 cell.setCellFormula("SUM(A1:A10)")
  • 样式设置通过 CellStyle 对象实现(如字体、边框)
  • 日期格式需特殊处理:cell.setCellValue(new Date()) 并设置样式

以上方法覆盖了从基础操作到高性能处理的常见需求,可根据项目复杂度选择合适方案。

标签: javaexcel
分享给朋友:

相关文章

java如何处理高并发

java如何处理高并发

Java处理高并发的方法 使用多线程和线程池 Java的java.util.concurrent包提供了线程池(如ThreadPoolExecutor)和并发工具类(如CountDownLatch、C…

java如何调用另一个类的方法

java如何调用另一个类的方法

调用另一个类的方法 在Java中调用另一个类的方法,通常需要创建该类的对象或直接通过类名调用(静态方法)。以下是几种常见的方式: 通过对象实例调用实例方法 创建一个目标类的对象,通过对象调用其方法。…

java实现vue接口

java实现vue接口

Java 实现 Vue 接口的方法 在 Java 中实现 Vue 前端调用的接口,通常需要使用 Spring Boot 框架构建 RESTful API。以下是具体的实现步骤和代码示例。 创建 Sp…

java下载功能vue实现

java下载功能vue实现

Java 后端文件下载功能实现 后端需提供文件下载的接口,通常使用 HttpServletResponse 实现。以下是一个简单的 Java Spring Boot 示例: @GetMapping(…

react如何与java配合

react如何与java配合

React 与 Java 配合的常见方式 React 作为前端框架,通常与 Java 后端通过 RESTful API 或 GraphQL 进行交互。以下是几种常见的配合方式: RESTful AP…

php 实现 java md5

php 实现 java md5

在 PHP 中实现与 Java 相同的 MD5 哈希算法,关键在于确保编码和输出格式的一致性。以下是具体实现方法和注意事项: 确保字符串编码一致 Java 的 String.getBytes() 默…