ExcelテンプレートエンジンJETTの紹介
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();
}
}
サンプルのソースコードは以下に公開しております。
式の評価
#式を評価したくない場合
#<jt:null> ~ </jt:null> で括られたセルは式が評価されません。
ループその1
#<jt:forEach> タグを使ってループ処理が行えます。
(画像は出力結果のみです)
ループその2
#copyRight属性を使用すると横方向へループします。
(画像は出力結果のみです)
メモ付きセル
#<jt:comment> タグを使うとメモ付きのセルを作れます。
(画像は出力結果のみです)
Excel関数や式を入れる
#Excel関数や式を入れる場合は <jt:formula> タグを使います。
(画像は出力結果のみです)
まとめ
#今回はJETT (Java Excel Template Translator) でテンプレートファイルからExcelファイルを出力する方法を紹介しました。他にも便利なタグが提供されております。詳しくは The JETT Tag Libraryをご覧ください。