Welcome
Fisshplateとは、Excelにテンプレート式を書くことによって、動的にデータが埋め込まれたExcelファイルを出力する事ができるライブラリです。
テンプレートを用いる事で、Excel帳票を簡単に出力する事が出来ます。
概要
まず、Excelでテンプレートを作ります。
下記の様にテンプレートファイルを読み込み、POIのHSSFWorkbookを生成し、保存します。
public class A{ private String name; private int num; private Date date; A(String name, int num, Date date){ this.name = name; this.num = num; this.date = date; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getNum() { return num; } public void setNum(int num) { this.num = num; } }
//データ作成 Map map = new HashMap(); map.put("title", "タイトルである"); List aList = new ArrayList(); aList.add(new A("1行目",10,new Date())); aList.add(new A("2行目",20,new Date())); aList.add(new A("3行目",30,new Date())); aList.add(new A("4行目",10,new Date())); aList.add(new A("5行目",20,new Date())); aList.add(new A("6行目",30,new Date())); map.put("b", aList); InputStream is = getClass().getResourceAsStream("/FPTemplateTest.xls"); FPTemplate template = new FPTemplate(); HSSFWorkbook wb; try { wb = template.process(is, map); } catch (Exception e) { //例外処理 throw e; } FileOutputStream fos = new FileOutputStream("out.xls"); wb.write(fos); fos.close();
out.xlsというファイルが出力されます。そのファイルはテンプレートに上記のコードで設定したデータが埋め込まれています。
このように、VelocityやFreeMarkerといったテンプレートエンジンと同じ様に、繰り返しや条件分岐などを反映してExcelを出力する事が出来ます。 テンプレートに設定した背景色、罫線、セルのマージ、フォントなどの書式も反映されます。
名前の由来
Fisshplateでは、Apache POIを用いています。POIのExcel用サブコンポーネントは、HSSF(Horrible SpreadSheet Format)という名前になっています。 これを逆さにするとFSSH、これだと読みにくいので、FiSSHとします。これにTemplateを組み合わせて、Fisshplateと命名しました。
また、英語として正確なスペルに直したfishplateには、鉄道の線路と線路をつなぎとめる鉄板という意味があります。