Отворен източник Java API за електронни таблици на Microsoft Excel
Създавайте, четете, редактирайте и конвертирайте файлове с електронни таблици на Microsoft Excel в Java приложения чрез API с отворен код.
Какво е FastExcel?
Работата с големи файлове на Excel винаги е голямо предизвикателство за софтуерни програмисти и изисква умения и ресурси на високо ниво, за да го управлявате. FastExcel е много мощна библиотека с отворен код Java Excel, която позволява на разработчиците на софтуер да създават и четат готварски книги на Microsoft Excel XLSX в собствените си Java приложения. Той помага на разработчиците да работят с големи файлове на Excel без външни зависимости.
FastExcel е много лесно да се използва и намалява отпечатъка на паметта и високата производителност, като се натрупват само необходимите елементи. Той включва няколко важни функции за работа с електронни таблици като създаване на прости готварски книги, прилагане на стилове и форматиране на клетки, колони и редове, задаване стил на редица клетки, сливане на клетки и редове, нюанси.
FastExcel осигурява пълна подкрепа за мулти-четене, което означава, че всеки работен лист в готварската книга може да бъде генериран от различна нишка, като същевременно напълно поддържа споделени струни и стилове. FastExcel читателят е много ефективен и чете само съдържание на клетки и стилове на изхвърляне, графики и други неща.
Първи стъпки с FastExcel
Библиотеката се нуждае от Java 8. Строителство с Хевън. Моля, включете следната зависимост във вашите POM
Детска зависимост
<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 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
Multitreading е способността на централния процесор (CPU) да осигурява множество нишки на изпълнение едновременно, поддържани от операционната система. Ако компютърът има множество процесори или процесорни ядра, операционната система поема отговорност за разпределянето на нишките към процесорите по най-ефективния начин. Библиотеката с отворен код 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();
}