再最近的一个项目中需要把报表到处为excel文件,再java中要实现这样的功能只能采用第三方的开源包,当前比较成熟的项目有apache的POI和JXL(据说是韩国人所写),因为对Apache的偏爱便毫不犹豫的选择了POI,开始用起来还真的挺方便,它所提供的API文档和Quickly Guide 基本上足够满足我们开发的需要,但是在完成所有的报表功能以后客户提出要把表格加上边框,这下可费劲了,浏览了一边Quickly Guide 发现了一个设置合并单元格的方法,但是在eclipes中提示引用错误,仔细把POI的文档读了一遍才发现POI在目前的版本中并不提供这样的方发,这些方法写出来只是告诉大家在以后的版本中可能会推出,所以如果要用POI给合并的单元格加边框基本上是不可能了,除非采用折衷的办法,计算出每个合并单元格周围的所有单元格,分别给这些单元格加上边框,等于是用其他单元格的边框把合并单元格给包围起来,这样的操作是相当麻烦的
现在要解决Excel合并单元格加边框的问题只有换其他的工具包了,这时候只有采用JXL了,他提供的示例方法并不多,而且API文档也比较简略,但是具体用起来还是挺顺手了,单元格的创建比POI要方便很多,尤其是合并单元格的操作更是比POI简单,而且更重要的是JXL可以很好的解决合并单元格的边框问题。还有就是JXL对非英文的支持也比较好,比POI要好点。
总之,如果你在使用POI生成Excel出现合并单元格边框我问题的时候,这个问题我已经花费很大精力了,但最后还是无功而返,最后放弃POI,所以个人建议提前还工具包,推荐JXL,基本的excel报表功能用这个都可以实现的。