1. 产品
  2.   电子表格
  3.   Java
  4.   FastExcel
 
  

Microsoft Excel电子表格开放源代码JavaAPI

通过开源 API 在 Java 应用程序中创建、读取、编辑和转换 Microsoft Excel 电子表格文件。

什么是 FastExcel?

与大型Excel文件一起工作对软件程序员来说是一个巨大的挑战、需要高水平的技能和资源来管理它。 FastExcel是一个非常强大的开放源码Java Excel库、允许软件开发者在他们自己的Java个应用程序中创建和读取Microsoft ExcelXLSX烹饪书。 它帮助开发人员在没有任何外部依赖的情况下处理大型Excel文件。

FastExcel是非常简单的使用和减少内存足迹和高性能通过积累必要的元素。 它包括几个重要的特点、如创建简单的烹饪书籍、将样式和格式应用到细胞、列和行上、设置样式、冻结页面边缘、排列等。

FastExcel为多线程提供完全支持、这意味着菜谱中的每个工作表可以由不同的线程生成、同时完全支持共享字符串和样式。 FastExcel读者非常有效、只读细胞内容和丢弃的样式、图表等。

Previous Next

FastExcel 入门

FastExcel个图书馆需要Java8+。 与黑文建设。 请在您的POM个中包括下列依赖项

FastExcel文的依赖

<dependency>
<groupId> org.dhatim</groupId>
<artifactId>fastexcel</artifactId>
<version>0.12.13</version>
</dependency>

您还可以从 GitHub 存储库下载编译后的共享库并安装。

通过JavaAPI生成Excel XLSX文件

开源的 FastExcel 库允许软件开发人员仅使用几行 Java 代码即可生成 Excel XLSX 文件。添加新工作簿和添加不同的工作表、在工作表中插入单元格和行非常容易。该库支持多种与文本格式和样式相关的功能,例如更改单元格样式、在一系列单元格上设置样式、遮蔽交替行、设置纸张大小和页面方向等。

通过Java图书馆创建新Excel文件

package com.zetcode;
import org.dhatim.fastexcel.Workbook;
import org.dhatim.fastexcel.Worksheet;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
public class FastExcelSimpleWrite {
    public static void main(String[] args) throws IOException {
        var words = List.of("sky", "blue", "work", "falcon");
        int row = 0;
        int col = 0;
        var f = new File("/home/janbodnar/tmp/words.xlsx");
        try (var fos = new FileOutputStream(f)) {
            var wb = new Workbook(fos, "Application", "1.0");
            Worksheet ws = wb.newWorksheet("Sheet 1");
            for (var word : words) {
                ws.value(row, col, word);
                row++;
            }
            wb.finish();
        }
    }
}

阅读ExcelXLSX文件通过Java API

FastExcel个图书馆提供了一个非常强大的读者、使用户能够轻松地打开和阅读Excel烹饪书。 它是Apache PO的一种流选择、但与Apache PO相比、处理非常简单、比它快10倍。 它只能读取细胞内容和丢弃的样式、图表和其他许多东西。 下面的例子显示了如何使用Java打开烹饪书并用流式阅读所有行。

开放和阅读库克手册罗斯通过Java

try (InputStream is = ...; ReadableWorkbook wb = new ReadableWorkbook(is)) {
    Sheet sheet = wb.getFirstSheet();
    try (Stream rows = sheet.openStream()) {
        rows.forEach(r -> {
            BigDecimal num = r.getCellAsNumber(0).orElse(null);
            String str = r.getCellAsString(1).orElse(null);
            LocalDateTime date = r.getCellAsDate(2).orElse(null);
        });
    }
} 

通过FastExcel'的多线程扩展表格生成

多线程是由操作系统支持的中央处理单元(CPU)同时提供多个执行线程的能力。 如果计算机有多个处理器或处理器芯、操作系统就负责以最有效的方式将线程分配给处理器。 开放源码FastExcel库完全支持多线程生成、并使用Java代码创建不同的线程表。

通过JavaAPI在多线程环境中生成电子表格

try (OutputStream os = ...) {
    Workbook wb = new Workbook(os, "MyApplication", "1.0");
    Worksheet ws1 = wb.newWorksheet("Sheet 1");
    Worksheet ws2 = wb.newWorksheet("Sheet 2");
    CompletableFuture cf1 = CompletableFuture.runAsync(() -> {
        // Fill worksheet 1
        ...
    });
    CompletableFuture cf2 = CompletableFuture.runAsync(() -> {
        // Fill worksheet 2
        ...
    });
    CompletableFuture.allOf(cf1, cf2).get();
    wb.finish();
}
 中国人