[url]http://jdkcn.com/entry/opensource-software-jxls.html[/url]
报表要求生成固定格式的excel 文件。当然就想到用apache poi了。
[url]http://poi.apache.org/[/url]
不过你得一个先生成一个workbook,然后create一个sheet,再添加一个row,最后再添加cell,然后你就可以往cell里写数据了。代码那个多啊。真是丑得没法看。
后来找到这个jxls项目。
[url]http://jxls.sourceforge.net/[/url]
真不错。其实jxls就是类似Freemarker的模板引擎。你只要提供一个.xls的模板(template),模板里写一些标签。然后把数据放到Map里让jxls填充一下就ok了。这样就根本不用poi的api去调xls的样式颜色啊。这个都是太麻烦了。
报表要求生成固定格式的excel 文件。当然就想到用apache poi了。
[url]http://poi.apache.org/[/url]
不过你得一个先生成一个workbook,然后create一个sheet,再添加一个row,最后再添加cell,然后你就可以往cell里写数据了。代码那个多啊。真是丑得没法看。
后来找到这个jxls项目。
[url]http://jxls.sourceforge.net/[/url]
真不错。其实jxls就是类似Freemarker的模板引擎。你只要提供一个.xls的模板(template),模板里写一些标签。然后把数据放到Map里让jxls填充一下就ok了。这样就根本不用poi的api去调xls的样式颜色啊。这个都是太麻烦了。
@Test
public void testTemplate() throws Exception {
List<CsvOrder> orders = new ArrayList<CsvOrder>();
CsvOrder order = new CsvOrder();
order.setDate("2008年8月28日");
order.setIncome(new BigDecimal(2000));
order.setTradeNo("200808280118");
order.setTrader("德比软件");
orders.add(order);
Map<String, Object> map = new HashMap<String, Object>();
map.put("orders", orders);
XLSTransformer transformer = new XLSTransformer();
transformer.transformXLS("src/test/resources/template.xls", map, "/home/rory/Desktop/workbook.xls");
}