在应用系统开发的过程中,很多客户会提出把数据表格导出为Exvel文件的需求,这样就可以利用Excel的强大功能做一些统计计算。Java自带的API中并没有直接操作Excel文档的方法,如果要在Java中处理Excel文档只有借助于第三方的解决方案。
在Java处理Excel这个领域已经有很多开源的解决方案,目前在这方面做得比较出色的有Apache POI和JExvelApi(jxl)。
Apache POI是Apache基金组织Jakarta项目的子项目。POI包括一系列的API,可以操作多种格式的Microsoft Office文件,通过这些API可以在Java中很方便的读写Excel、Word等文件。POI是比较完整的Java Excel和Java Word解决方案。其子项目包括:POIFS、HSSF、HDF、HPSF。其中HSSF是Java到Microsoft Excel 97/2001文件的接口,支持读写功能。
JExcelApi也是一个Java操作Excel的接口。它也是一个开源的解决方案,虽然在名气方面比不上大名鼎鼎的Apache POI,但是在操作Excel的功能上丝毫不比POI逊色,而且在某些方面做得比POI更出色,例如生成Excel文件时给合并单元格加边框的问题,在POI中这是很难实现的,POI的官方仅仅承诺在以后的版本中会添加这个功能。然而在JExcelApi中通过一个简单的设置语句就可以实现。而且总体上JExcelApi使用都是比较简单方便。
利用Java进行开发,尤其当使用第三方类库进行开发的时候,最让人头疼的就是中文乱码问题,在这方面就连Apache POI也不例外,在生成xcel文件时必须经过复杂的编码设置才能看到中文显示。但是使用JExcelApi就没有这个问题,只需简单地选择即可生成漂亮的中文Excel文件,这也是喝多开发人员愿意选择这个API的有一个重要原因。