什么是更好的API来阅读Excel工作表在java - JXL或Apache POI [已关闭]

whlutmcx  于 2022-11-26  发布在  Java
关注(0)|答案(4)|浏览(130)

已关闭。此问题为opinion-based。当前不接受答案。
**想要改进此问题吗?**请更新问题,以便editing this post可以使用事实与引用来回答.

七年前就关门了。
Improve this question
两个API中哪一个更容易读取/写入/编辑Excel工作表?这些API不支持CSV扩展吗?
对file.xls和file.xlsx使用JXL时,会出现如下异常:

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版本

vd2z7a6w

vd2z7a6w1#

JXL(现在的"JExcel")和Apache POI我都用过,一开始用的是JXL,现在用的是Apache POI。
首先,两个API具有相同的最终功能:

  • 两者都是免费的
  • 单元格样式:对齐、背景(颜色和图案)、边框(类型和颜色)、字体支持(字体名称、颜色、大小、粗体、斜体、删除线、下划线)
  • 公式
  • 超连结
  • 合并的单元格区域
  • 行和列的大小
  • 数据格式:数字和日期
  • 单元格内的文字环绕
  • 冻结窗格
  • 页眉/页脚支持
  • 读取/写入现有和新的电子表格
  • 两者都试图尽可能完整地保留电子表格中的现有对象。

但是,有许多不同之处:

  • 也许最显著的区别是JavaJXL不支持Excel2007 +". xlsx"格式;它只支持旧的BIFF(二进制)". xls"格式。Apache POI通过一个通用的设计支持这两种格式。
  • 另外,JXL API的Java部分最后一次更新是在2009年(我写这篇文章的时候是3年4个月前),尽管看起来好像有一个C#API。Apache POI正在积极维护。
  • JXL不支持条件格式,Apache POI支持,尽管这并不重要,因为您可以使用自己的代码对单元格进行条件格式设置。
  • JXL不支持 * rich*text格式,即文本字符串中的不同格式; Apache POI确实支持它。
  • JXL仅支持某些文本旋转:水平/垂直、+/-45度和堆叠; Apache POI支持任何整数度数加上堆栈。
  • JXL不支持绘制形状; Apache POI可以。
  • JXL支持大多数页面设置设置,如横向/纵向、边距、纸张大小和缩放。Apache POI支持所有这些设置以及重复行和列。
  • JXL不支持拆分窗格; Apache POI可以。
  • JXL不支持图表创建或操作; Apache POI中还没有这种支持,但API正在慢慢形成。
  • 与JXL相比,Apache POI具有更广泛的可用文档和示例集。

此外,POI不仅包含主要的"用户模型" API,而且还包含一个基于事件的API(如果您只想读取电子表格内容)。
总之,由于更好的文档、更多的特性、积极的开发和Excel 2007+格式支持,我使用Apache POI。

7d7tgy0s

7d7tgy0s2#

我使用过POI。
如果您使用它,请留意那些单元格格式化程序:创建一个并多次使用它,而不是每次都为单元格创建,这对于大数据来说是一个巨大内存消耗差异。

sg2wtvxw

sg2wtvxw3#

我不熟悉JXL,但我们使用POI。POI维护得很好,可以处理二进制.xls格式和Office 2007中引入的新的基于XML的格式。
CSV文件不是Excel文件,它们是基于文本的文件,所以这些库不能读取它们。你需要自己解析出CSV文件。我不知道任何CSV文件库,但我也没有看过。

wnavrhmk

wnavrhmk4#

要阅读Java中的“普通”CSV文件,有一个名为OpenCSV的库,可从以下站点获得:http://opencsv.sourceforge.net/

相关问题