Java API с открытым исходным кодом для электронных таблиц Microsoft Excel

Создавайте, читайте, редактируйте и преобразовывайте файлы электронных таблиц Microsoft Excel в приложения Java с помощью API с открытым исходным кодом.

Что такое FastExcel?

Работа с большими файлами Excel всегда является большой проблемой для программистов и требует высокого уровня навыков и ресурсов для управления ею. FastExcel — очень мощная библиотека Java Excel с открытым исходным кодом, которая позволяет разработчикам программного обеспечения создавать и читать рабочие книги Microsoft Excel XLSX внутри своих собственных приложений Java. Это помогает разработчикам работать с большими файлами Excel без каких-либо внешних зависимостей.

FastExcel очень прост в использовании и уменьшает объем памяти и повышает производительность за счет накопления только необходимых элементов. Он включает в себя несколько важных функций для работы с электронными таблицами, таких как создание простых рабочих книг, применение стилей и форматирования к ячейкам, столбцам и строкам, установка стиля для диапазона ячеек, объединение ячеек и строк, затенение чередующихся строк, установка размера бумаги и ориентации страницы. , установить поля страницы, создать область стоп-кадра и т. д.

FastExcel обеспечивает полную поддержку многопоточности, что означает, что каждый рабочий лист в книге может быть создан отдельным потоком, при этом полностью поддерживая общие строки и стили. Читатель FastExcel очень эффективен и только для чтения содержимого ячеек и отбрасывает стили, графики и другие вещи.

Previous Next

Начало работы с FastExcel

Для библиотеки FastExcel требуется Java 8+. Создавайте с помощью Maven. Пожалуйста, включите следующую зависимость в ваш POM

Зависимость FastExcel Maven

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

Вы также можете загрузить скомпилированную общую библиотеку из репозитория GitHub и установить ее.

Создать файл Excel XLSX через Java API

Библиотека FastExcel с открытым исходным кодом позволяет разработчикам программного обеспечения создавать файлы Excel XLSX всего за пару строк кода Java. Очень легко добавить новую книгу и добавить разные рабочие листы, вставить ячейки и строки внутри рабочего листа. Библиотека поддерживает несколько функций, связанных с форматированием и стилем текста, таких как изменение стиля ячейки, установка стиля для диапазона ячеек, затенение чередующихся строк, установка размера бумаги и ориентации страницы и т. д.

Создайте новый файл Excel с помощью библиотеки Java

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();
        }
    }
}

Чтение файла Excel XLSX через Java API

Библиотека FastExcel предоставила очень мощное средство чтения, позволяющее пользователям с легкостью открывать и читать книгу Excel. Это потоковая альтернатива Apache POI, но очень простая в обращении по сравнению с Apache POI и в 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`

Многопоточность — это способность центрального процессора (ЦП) одновременно обеспечивать несколько потоков выполнения, поддерживаемых операционной системой. Если компьютер имеет несколько процессоров или процессорных ядер, операционная система берет на себя ответственность за наиболее эффективное распределение потоков между процессорами. Библиотека FastExcel с открытым исходным кодом полностью поддерживает многопоточную генерацию и создает для каждого рабочего листа отдельный поток с использованием кода Java.

Создание электронных таблиц в многопоточной среде через Java API

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();
}
 Русский