Microsoft ExcelスプレッドシートのソースJava APIを開く
オープン ソース API を介して、Java アプリケーションで Microsoft Excel スプレッドシート ファイルを作成、読み取り、編集、変換します。
ファストエクセルとは?
大規模なExcelファイルを扱うことは、常にソフトウェアプログラマにとって大きな課題であり、高いレベルのスキルとリソースを必要としています。 FastExcelは、ソフトウェア開発者が独自のJavaアプリケーション内でMicrosoft Excel XLSX cookbookを作成および読むことを可能にする非常に強力なオープンソースJava Excelライブラリです。 開発者は、外部の依存関係なしで大規模なExcelファイルを扱うのに役立ちます。
FastExcelは、必要な要素だけを蓄積することにより、メモリの足跡と高い性能を使用および削減することは非常に簡単です。 シンプルな料理本を作成したり、スタイルを適用したり、セル、列や行をフォーマットしたり、セルの範囲でスタイルを設定したり、セルと行をマージしたり、異なる行をシェードしたり、用紙サイズとページのオリエンテーションを設定したり、ページマージンを設定したり、フリーズパンを作成したりするなど、スプレッドシートを扱うためにいくつかの重要な機能が含まれています。
FastExcel は、各ワークシートが異なるスレッドで生成できることを意味します。また、共有文字列やスタイルを完全にサポートします。 FastExcelの読者は非常に有効で、細胞の内容だけおよび廃棄様式、グラフおよび他の原料を読む。
FastExcel を使い始める
FastExcelライブラリはJava 8 +が必要です。 ヘブンでビルドする。 あなたのPOMの次の依存関係を入力してください
FastExcel 依存症
<dependency>
<groupId> org.dhatim</groupId>
<artifactId>fastexcel</artifactId>
<version>0.12.13</version>
</dependency>
GitHub リポジトリからコンパイル済みの共有ライブラリをダウンロードしてインストールすることもできます。
Java API 経由で Excel XLSX ファイルを生成する
オープンソースFastExcelライブラリは、ソフトウェア開発者がExcel XLSXファイルをJavaコードのほんの数行で生成できます。 新しいクックブックを追加し、ワークシート内のさまざまなワークシート、インサートセル、行を追加するのは非常に簡単です。 ライブラリは、変更セルスタイル、セットスタイルなどのテキストフォーマットやスタイリングに関連するいくつかの機能をサポートし、さまざまなセル、シェード代替行、セット用紙サイズ、ページオリエンテーションなど。
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();
}
}
}
エクセル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秒でマルチスレッド化
マルチスレッドは、オペレーティングシステムでサポートされている複数の実行スレッドを同時提供する中央処理ユニット(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();
}