其中2层的API是简单的读/写/编辑Excel表格? 难道这些API不支持CSV扩展?
使用JXL为file.xls和file.xlsx,我得到这样一个例外:
jxl.read.biff.BiffException: Unable to recognize OLE stream
at jxl.read.biff.CompoundFile.<init>(CompoundFile.java:116)
at jxl.read.biff.File.<init>(File.java:127)
at jxl.Workbook.getWorkbook(Workbook.java:268)
at core.ReadXLSheet.contentReading(ReadXLSheet.java:46)
at core.ReadXLSheet.init(ReadXLSheet.java:22)
at core.ReadXLSheet.main(ReadXLSheet.java:72)
无论对于.xls和.XLSX扩展。 我使用的Java版本是:JDK1.6
我都用了锦绣丽 (现为“JExcel”)和Apache的POI 。 起初,我用JXL,但现在我使用Apache POI。
首先,这里是其中两种API具有相同的高端功能的东西:
- 这两个都是免费
- 细胞造型:对准,背景(颜色和图案),边框(类型和颜色),字体支持(字体名称,颜色,大小,粗体,斜体,删除线,下划线)
- 公式
- 超链接
- 合并单元格的区域
- 行和列的大小
- 数据格式:数字和日期
- 细胞内的文字换行
- 冻结窗格
- 页眉/页脚支持
- 读/写现有的和新的电子表格
- 双方试图保持现有的在他们完整尽可能阅读电子表格对象。
然而,也有很多不同之处:
- 也许最显著的区别是Java JXL不支持的Excel 2007+“的.xlsx”格式; 它仅支持旧的BIFF(二进制)是“.xls”格式。 Apache的POI支持与常见的设计。
- 另外,JXL API的Java的部分是过去的2009年更新(3年,4个月前,我写这篇文章),虽然它看起来像有一个C#API。 Apache的POI是积极维护。
- JXL不支持条件格式的Apache POI确实,虽然这不是显著,因为你可以有条件地设置单元格格式用自己的代码。
- JXL不支持富 文本格式,即文本字符串中不同格式; Apache的POI不支持它。
- JXL只支持某些文本转:水平/垂直,+/- 45度,并堆叠; Apache的POI支持度加堆叠的任何整数。
- JXL不支持绘制形状; Apache的POI一样。
- JXL支持大多数页面设置设置,如横向/纵向,边距,纸张大小,和缩放。 Apache的POI支持所有这一切加上重复的行和列。
- JXL不支持拆分窗格; Apache的POI一样。
- JXL不支持图表创建或操纵; 这种支持现在还没有在Apache的POI,而是一个API慢慢开始形成。
- Apache的POI具有比JXL提供一个更为广泛的文档和示例。
此外,POI包含不只是主“的usermodel” API,但也是一个基于事件的API,如果你想要做的是阅读电子表格内容。
总之,因为更好的文档,更多的功能,积极发展和Excel 2007+格式的支持,我使用Apache POI。
我用POI。
如果使用,时刻关注那些元格式化:创建一个,并用它几次,而不是创建细胞每一次,它ISA巨大的内存消耗差或大的数据。
我不熟悉锦绣丽和,但我们使用的POI。 POI是很好的维护,并可以同时处理二进制.xls格式,并且在Office 2007推出了新的基于XML的格式。
CSV文件不Excel文件,它们是基于文本文件,所以这些库不读它们。 您将需要分析出一个CSV文件自己。 我不知道任何CSV文件库,但我没有任何期待。
对于阅读“plain”中的Java CSV文件中,有一个名为OpenCSV库,请访问: http://opencsv.sourceforge.net/
文章来源: What is the better API to Reading Excel sheets in java - JXL or Apache POI [closed]