Open Source Java API dla arkuszy kalkulacyjnych Microsoft Excel
Twórz, czytaj, edytuj i konwertuj pliki arkuszy kalkulacyjnych Microsoft Excel w aplikacjach Java za pomocą interfejsu Open Source API.
Co to jest FastExcel?
Praca z dużymi plikami Excel jest zawsze dużym wyzwaniem dla programistów i wymaga wysokiego poziomu umiejętności i zasobów do zarządzania nim. FastExcel to bardzo potężna biblioteka Java Excel o otwartym kodzie źródłowym, która umożliwia programistom tworzenie i odczytywanie skoroszytów Microsoft Excel XLSX w ich własnych aplikacjach Java. Pomaga programistom pracować z dużymi plikami Excel bez żadnych zewnętrznych zależności.
FastExcel jest bardzo prosty w użyciu i zmniejsza zużycie pamięci oraz wysoką wydajność poprzez gromadzenie tylko niezbędnych elementów. Zawiera kilka ważnych funkcji do pracy z arkuszami kalkulacyjnymi, takich jak tworzenie prostych skoroszytów, stosowanie stylów i formatowanie do komórek, kolumn i wierszy, ustawianie stylu w zakresie komórek, scalanie komórek i wierszy, cieniowanie naprzemiennych wierszy, ustawianie rozmiaru papieru i orientacji strony , ustaw marginesy strony, utwórz okienko zamrożenia i tak dalej.
FastExcel zapewnia pełną obsługę wielowątkowości, co oznacza, że każdy arkusz w skoroszycie może być generowany przez inny wątek, przy jednoczesnym pełnym wsparciu współdzielonych ciągów znaków i stylów. Czytnik FastExcel jest bardzo wydajny i odczytuje tylko zawartość komórek i odrzuca style, wykresy i inne rzeczy.
Pierwsze kroki z FastExcel
Biblioteka FastExcel wymaga Java 8+. Twórz z Mavenem. Proszę uwzględnić następującą zależność w POM
Zależność FastExcel Maven
<dependency>
<groupId> org.dhatim</groupId>
<artifactId>fastexcel</artifactId>
<version>0.12.13</version>
</dependency>
Możesz także pobrać skompilowaną bibliotekę współdzieloną z repozytorium GitHub i zainstalować ją.
Wygeneruj plik Excel XLSX za pomocą Java API
Biblioteka FastExcel o otwartym kodzie źródłowym umożliwia programistom generowanie pliku Excel XLSX za pomocą zaledwie kilku wierszy kodu Java. Bardzo łatwo jest dodać nowy skoroszyt i dodać różne arkusze, wstawić komórki i wiersze do arkusza. Biblioteka obsługuje kilka funkcji związanych z formatowaniem i stylem tekstu, takich jak zmiana stylu komórki, ustawienie stylu w zakresie komórek, cieniowanie naprzemiennych wierszy, ustawienie rozmiaru papieru i orientacji strony i tak dalej.
Utwórz nowy plik programu Excel za pośrednictwem biblioteki 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();
}
}
}
Odczyt pliku Excel XLSX za pośrednictwem Java API
Biblioteka FastExcel zapewnia bardzo potężny czytnik, który pozwala użytkownikom z łatwością otwierać i czytać skoroszyt programu Excel. Jest to strumieniowa alternatywa Apache POI, ale bardzo prosta w obsłudze w porównaniu do Apache POI i 10 razy szybsza od niego. Może tylko odczytywać zawartość komórki i odrzuca style, wykresy i wiele innych rzeczy. Poniższy przykład pokazuje, jak otworzyć skoroszyt i odczytać wszystkie wiersze w sposób strumieniowy przy użyciu języka Java.
Otwieraj i czytaj wiersze skoroszytu w trybie przesyłania strumieniowego przez Javę
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);
});
}
}
Wielowątkowe generowanie arkuszy kalkulacyjnych za pomocą FastExcel`
Wielowątkowość to zdolność jednostki centralnej (CPU) do jednoczesnego wykonywania wielu wątków, obsługiwana przez system operacyjny. Jeśli komputer ma wiele procesorów lub rdzeni procesorów, system operacyjny przejmuje odpowiedzialność za przydzielanie wątków do procesorów w najbardziej efektywny sposób. Biblioteka FastExcel o otwartym kodzie źródłowym w pełni obsługuje generowanie wielowątkowe i tworzy dla każdego arkusza osobny wątek przy użyciu kodu Java.
Generuj arkusze kalkulacyjne w środowisku wielowątkowym za pośrednictwem 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();
}