什么是阅读Excel表格在Java中更好API - JXL或Apache POI [关闭](Wh

2019-07-20 05:59发布

其中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

Answer 1:

我都用了锦绣丽 (现为“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。



Answer 2:

我用POI。

如果使用,时刻关注那些元格式化:创建一个,并用它几次,而不是创建细胞每一次,它ISA巨大的内存消耗差或大的数据。



Answer 3:

我不熟悉锦绣丽和,但我们使用的POI。 POI是很好的维护,并可以同时处理二进制.xls格式,并且在Office 2007推出了新的基于XML的格式。

CSV文件不Excel文件,它们是基于文本文件,所以这些库不读它们。 您将需要分析出一个CSV文件自己。 我不知道任何CSV文件库,但我没有任何期待。



Answer 4:

对于阅读“plain”中的Java CSV文件中,有一个名为OpenCSV库,请访问: http://opencsv.sourceforge.net/



文章来源: What is the better API to Reading Excel sheets in java - JXL or Apache POI [closed]