2011-06-08 137 views
1

我有使用Apache POI编写的代码,用于从使用hssf的.xls工作表读取数据。我希望程序使用org.apache.poi.ss.usermodel来读取.xlsx工作表。下面是代码: (_filename被传递到功能)Apache POI - 使用usermodel读取.xlsx和.xls文件

java.io.FileInputStream中FS =新java.io.FileInputStream中(_filename) 工作簿簿= WorkbookFactory.create(FS);

它引发.xlsx文件的以下异常:InavlidFormatException - 无法读取内容类型部分! 我在Visual Studio中这样做,所以输出窗口显示“在poi-ooxml-3.7-20101029.dll中发生了类型'org.apache.poi.openxml4j.exceptions.InvalidFormatException'的第一个机会异常。

而对于一个.xls文件,输出窗口说“类型的第一次机会异常‘java.io.IOException异常’发生在IKVM.OpenJDK.Core.dll”

这将是巨大的,如果有人可以帮助我解决这个问题。这方面的工作从昨天起。

太谢谢你了! 达雅

回答

0

错误消息表明您的.xlsx文件不是有效的文件。我会仔细检查你传递的是正确的文件,它确实是一个Excel文件(而不是别的 - 在你的.xlsx的情况下,我怀疑你只是有一个普通的zip文件)

+0

我检查了文件,这是正确的..虽然奇怪,但因为当我写了一个.xls文件并以.xlsx格式复制它的另一个程序,excel抱怨说它是无效的并且不会打开它,所以我不得不“修复”它,那么原来的程序我已经接受了这个文件。问题出在我使用的dll上,因为这些文件的副本位于程序可以访问的多个位置。我只需删除重复的副本。无论如何感谢一堆! – 2011-06-10 17:47:20

相关问题