注目イベント!
アドベントカレンダー2024開催します(12/1~12/25)!
一年を締めくくる特別なイベント、アドベントカレンダーを今年も開催します!
初心者からベテランまで楽しめる内容で、毎日新しい技術トピックをお届けします。
詳細はこちらから!
event banner

ExcelテンプレートエンジンJETTの紹介

| 2 min read
Author: koshiro-fukushima koshiro-fukushimaの画像

Javaで使えるExcelテンプレートエンジンJETTを紹介させていただきます。導入方法等の詳細については公式サイトをご覧ください。

特徴

#

JETT (Java Excel Template Translator) は、Excelテンプレートを使用してExcelスプレッドシートを作成できるテンプレートエンジンです。

大まかな流れ

Excelテンプレートを準備し、アプリケーション側からデータを与えるとテンプレートに沿ったファイルを生成してくれます(詳しい使い方は後述)。テンプレートファイル側にセルのスタイルが定義できるので、Excelファイル出力によく使われる Apache POI と比べて体裁の管理が楽にできます。

導入

#

Maven2 を使用している場合は、pom.xml に次の依存関係を配置できます。0.3.0 以降、JETT は Maven 2 セントラル リポジトリで利用できるようになりました。

<dependency>
    <groupId>net.sf.jett</groupId>
    <artifactId>jett-core</artifactId>
    <version>0.11.0</version>
</dependency>

基本的な使い方

#

次のサンプルコードをベースに基本機能のご紹介をいたします。

/**
 * JETT Sample
 */
public class Sample {

	public static void main(String[] args) throws Exception {
		Map<String, Object> map = new HashMap<>();

		map.put("string", "Hello!");
		map.put("list", Arrays.asList("one", "two", "three", "four", "five"));
		map.put("formula", "today()");

		ExcelTransformer transformer = new ExcelTransformer();

		InputStream in = Sample.class.getResourceAsStream("./sample.xlsx");
		FileOutputStream out = new FileOutputStream(new File("./output.xlsx"));

		Workbook workbook = transformer.transform(in, map);
		workbook.write(out);
		out.close();
	}

}

サンプルのソースコードは以下に公開しております。

式の評価

#

テンプレートを記述した${EL式} が評価されます。
式の評価

式を評価したくない場合

#

<jt:null> ~ </jt:null> で括られたセルは式が評価されません。
式を評価したくない場合

ループその1

#

<jt:forEach> タグを使ってループ処理が行えます。
(画像は出力結果のみです)
ループその1

ループその2

#

copyRight属性を使用すると横方向へループします。
(画像は出力結果のみです)
ループその2

メモ付きセル

#

<jt:comment> タグを使うとメモ付きのセルを作れます。
(画像は出力結果のみです)
メモ付きセル

Excel関数や式を入れる

#

Excel関数や式を入れる場合は <jt:formula> タグを使います。
(画像は出力結果のみです)
Excel関数や式を入れる

まとめ

#

今回はJETT (Java Excel Template Translator) でテンプレートファイルからExcelファイルを出力する方法を紹介しました。他にも便利なタグが提供されております。詳しくは The JETT Tag Libraryをご覧ください。

豆蔵では共に高め合う仲間を募集しています!

recruit

具体的な採用情報はこちらからご覧いただけます。