两个API中哪一个更易于读取/写入/编辑Excel工作表? 这些API不支持CSV扩展吗?
使用JXL for 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
答案 0 :(得分:250)
我使用了JXL(现在是“JExcel”)和Apache POI。起初我使用的是JXL,但现在我使用的是Apache POI。
首先,这两个API具有相同的最终功能:
然而,存在许多差异:
此外,POI不仅包含主“usermodel”API,还包含基于事件的API(如果您只想阅读电子表格内容)。
总之,由于更好的文档,更多功能,活动开发和Excel 2007+格式支持,我使用Apache POI。
答案 1 :(得分:12)
我使用了POI。
如果您使用它,请继续关注那些单元格格式器:创建一个并多次使用它而不是每次为单元格创建,这是一个巨大的内存消耗差异或大数据。
答案 2 :(得分:5)
我不熟悉JXL,但我们使用POI。 POI维护得很好,可以处理二进制.xls格式和Office 2007中引入的基于xml的新格式。
CSV文件不是excel文件,它们是基于文本的文件,因此这些库不会读取它们。您需要自己解析CSV文件。我不知道任何CSV文件库,但我也没看过。
答案 3 :(得分:1)
为了在Java中读取“普通”CSV文件,有一个名为OpenCSV的库,可在此处获取:http://opencsv.sourceforge.net/