テンプレートファイルから出力ファイルの取得の仕方
テンプレートオブジェクトの生成
まず、ファイルを出力するオブジェクト、「FPTemplate」を生成します。
FPTemplate template = new FPTemplate();
埋め込みデータ生成
テンプレートに埋め込むデータは、Mapで作ります。キーはテンプレートから評価式で参照するため、文字列にします。
Map data = new HashMap();
data.put("title", "タイトルです");
Foo foo = new Foo();
foo.setBar("テスト");
data.put("fooTest", foo);
このMapをFPTemplateに渡します。
テンプレートファイル読み込み・ファイル出力
「FPTemplateTest.xls」というテンプレートファイルを、ルートパッケージに置いたとします。
InputStreamとして読み、先程用意した埋め込みデータと一緒にFPTemplateに渡します。
InputStream is = getClass().getResourceAsStream("/FPTemplateTest.xls");
HSSFWorkbook wb;
try {
wb = template.process(is, data);
} catch (FPParseException e) {
//例外処理
throw e;
} catch (FPMergeException e) {
//例外処理
throw e;
}finally{
is.close();
}
OutputStream os = new FileOutputStream("target/FPTemplateTest_out.xls");
wb.write(os);
os.close();
テンプレートに文法上の誤りがあった場合、FPParseExceptionが投げられます。
データ埋め込み時にエラーが発生した場合、FPMergeExceptionが投げられます。
他に、FPTemplate#process(InputStream, Map)は、IOExceptionも投げますが、上記では省略しています。
正常に処理が終了すると、データが埋め込まれたHSSFWorkbookが戻されます。
データ埋め込みメソッドには他に、
- process(String,Map)
- process(HSSFWorkbook, Map)
があります。
