JXL和POI都是处理Excel比较好的两个开源项目。
重API功能的话,选择POI;
重内存消耗的话,选择JXL;
JXL:
优点:
Jxl对中文支持非常好,操作简单,方法看名知意。
Jxl是纯javaAPI,在跨平台上表现的非常完美,代码可以再windows或者Linux上运行而无需重新编写
支持Excel 95-2000的所有版本
生成Excel 2000标准格式
支持字体、数字、日期操作
能够修饰单元格属性
支持图像和图表,但是这套API对图形和图表的支持很有限,而且仅仅识别PNG格式。
缺点:效率低,图片支持部完善,对格式的支持不如POI强大
POI:
效率高,这点很好
支持公式,宏,一些企业应用上会非常实用
能够修饰单元格属性
支持字体、数字、日期操作
1. poi已消耗内存换取部分效率,而jxl在内存消耗上一直很稳定。POI很容易内存溢出
2.poi随着数据量的增大,性能直线下降,当我增大到24000条每个sheet的时候,内存溢出。jxl却能运行
建议在大数据量的时候使用jxl .可以保证效率和较小内存消耗。在具体开发中,对部分常用的excel下载,可生产副本文件,避免重复生产Excel消耗内存
3.在测试的过程中,发现POI极其不稳定。获得的数据有时候相差特别大。每种测试情况我是重复测试4次,然后取平均值
总体来说,对于简单的单表excel导入导出的需求,建议使用JXL。数据量稍微小点,占用内存少,速度快。
对于报表类的,涉及月份数据量,多表数据聚合在一起建议使用POI。