【问题标题】:Apache POI - Reading .xlsx and .xls files using usermodelApache POI - 使用 usermodel 读取 .xlsx 和 .xls 文件
【发布时间】:2011-06-08 19:44:27
【问题描述】:

我有使用 Apache POI 编写的代码,用于使用 hssf 从 .xls 工作表中读取数据。我希望程序也可以使用 org.apache.poi.ss.usermodel 来读取 .xlsx 工作表。这是代码: (_fileName 传入函数)

java.io.FileInputStream fs = new java.io.FileInputStream(_fileName) 工作簿book = WorkbookFactory.create(fs);

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

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

如果有人能帮我解决这个问题,那就太好了。从昨天开始一直在做这件事。

非常感谢!!! 声音

【问题讨论】:

    标签: exception-handling apache-poi


    【解决方案1】:

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

    【讨论】:

    • 我检查了文件,它是正确的..它很奇怪,因为当我编写另一个程序时,它采用 .xls 文件并以 .xlsx 格式复制它,excel 抱怨它无效并且不会t 打开它,所以我不得不“修复”它,然后我接受了这个文件的原始程序。问题出在我使用的 dll 上,因为这些文件的副本位于程序可以访问的多个位置。我只需要删除重复的副本。无论如何,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-10
    • 1970-01-01
    • 1970-01-01
    • 2013-03-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多