VolocityみたいなExcelテンプレート

こんな感じのテンプレートを作って

こんな感じでデータを作って

  Map m = new HashMap();
  m.put("title", "POIですよ");
  List l= new ArrayList();
  l.add(new A("test", 5, new Date()));
  l.add(new A("2つ", 7, new Date()));
  m.put("b", l);

こんな感じで呼び出すと

  InputStream is = getClass().getResourceAsStream("template.xls");
  POIFSFileSystem fs = new POIFSFileSystem(is);

  HSSFWorkbook wb = velopoi.VeloPoi.merge(fs, m);
			
  FileOutputStream fos = new FileOutputStream("C:\\data\\out.xls");
  wb.write(fos);

こんな感じで出力される

こんな感じ(VeloPoi.jar(8kb))のライブラリがあったら素敵かも。
ソースはこんな感じ(VeloPoi.java(6kb)じゃなくてもっとまじめな感じで。


とりあえずJava2SE5用。
いまのところの依存ライブラリは
Jakarta-POI
OGNL
Jakarta-Commons-Collections
Jakarta-Commons-BeanUtils
Jakarta-Commons-Logging
です。

2023/2/8 追記 リンク切れているので、ソースをこちらに置いています。
https://gist.github.com/kishida/620975675b8a8cb8e7785065c6911c98

続き
https://nowokay.hatenablog.com/entry/20050526