前几天给财物做一个支付的统计报表,要求生成固定格式的excel 文件。当然就想到用apache poi了。
http://poi.apache.org/
不过你得一个先生成一个workbook,然后create一个sheet,再添加一个row,最后再添加cell,然后你就可以往cell里写数据了。代码那个多啊。真是丑得没法看。
后来找到这个jxls项目。
http://jxls.sourceforge.net/
真不错。其实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");
}
下面是模板文件。

生成的结果:

不过听说比较多bug。我现在用来还没有遇到。你觉得方便就用吧。:)
Aug 29
Trackback:opensource-software-jxls





Sunday, August 31, 2008, 11:13:11 PM (CST)
我想用SVN下载源代码,可不知道用户名密码啊,能告诉我吗?想学习下啊
Sunday, August 31, 2008, 11:24:49 PM (CST)
$ svn checkout https://jxls.svn.sourceforge.net/svnroot/jxls/tags/jxls-0.9.5 jxls
在这里。
Sunday, August 31, 2008, 11:33:58 PM (CST)
不是,误会了,呵呵,朋友,是那个MYBLOG里面
http://myblog.googlecode.com/svn/trunk/
用这个网,用SVN下载到ECLIPSE里面,好象要用户名和密码的。
朋友好象刚才就在搞代码吧?呵呵,突然一下,SRC都不见了。呵
Sunday, August 31, 2008, 11:40:50 PM (CST)
汗。。:)
你check 这个地址是不需要用户名和密码的。
http://myblog.googlecode.com/svn/trunk/myblog/
你看你是不是用的https 不是 http
Monday, September 01, 2008, 12:13:49 AM (CST)
哦,是的,应该是我的方法错误,现在好了,谢谢你。