当前位置: 首页 > 知识库问答 >
问题:

Apache POI-用于处理数据的部件无效

瞿子濯
2023-03-14

我使用Java Apache POI(HSSF)访问Excel电子表格。我得到以下错误:

java.lang.RuntimeException: org.apache.poi.poifs.filesystem.OfficeXmlFileException: The supplied data appears to be in the Office 2007+ XML. You are calling the part of POI that deals with OLE2 Office Documents. You need to call a different part of POI to process this data (eg XSSF instead of HSSF)
at org.testng.internal.MethodInvocationHelper.invokeDataProvider(MethodInvocationHelper.java:143)
at org.testng.internal.Parameters.handleParameters(Parameters.java:426)

共有1个答案

应瀚
2023-03-14

若要打开XLSX(Office open XML)文件,应使用XSSFWorkbook而不是用于XLS(Excel 97-2003)文件的HSSFWorkbook

如果您使用的是POI<3.5,则至少需要升级到3.5版本,以便能够读取xlsx文件。以下是执行转换的指南,但本质上,您需要使用WorkbookFactory加载文件,该文件负责为您创建XSSFWorkbookHSSFWorkbook

Workbook workbook = WorkbookFactory.create(new File("file.xlsx"))
 类似资料:
  • 我遇到了一个问题,我无法在我的资源中获取我的表单,变量总是为空 我的资源: 表单模型 我的取货请求: 和我的HttpClient: 为了确保我正在使用代理进行测试并且请求实际上是好的:变量文件名和徽标始终为空。 这是我的绒球.xml: 我不知道问题出在哪里。 我已经看过了多部分的官方resteasy文档,看不出问题在哪里。我已经用MultipartFormDataInput测试过,所有部分都是空的

  • 我使用Spring批处理从Oracle数据库读取数据并将结果写入CSV文件。 我还需要将spring批处理元数据表与oracle数据库分开,为此,我在批处理配置中配置了两个不同的数据源(spring批处理元数据的内存数据库)。 这是我的代码: 批处理配置。JAVA 然后我的itemReader bean看起来像: 当我运行批处理时,一切正常。 但是当我尝试在我的BatchApplication中添

  • 在当前目录下通过文件名查找一个文件,使用类似于这样的命令:find . -iname '*something*'。在所有路径下通过文件名查找文件,使用 locate something (但注意到 updatedb 可能没有对最近新建的文件建立索引,所以你可能无法定位到这些未被索引的文件)。 使用 ag 在源代码或数据文件里检索(grep -r 同样可以做到,但相比之下 ag 更加先进)。 将 H

  • 我是骆驼的新手。我将有一个文件处理与骆驼,但我还没有找到一个现成的解决方案,我的情况。我必须一起处理多个文件,以防它们存在。这些文件上载到特定文件夹时会有一些延迟(例如:我们有两个文件a.csv和b.csv,a.csv上载的时间比b.csv晚10秒,反之亦然)。此外,如果一个文件缺席超过特定的时间,我只需要处理一个文件。有谁能帮我选一个图案吗?据我所知,我可以使用camel过滤器来确保我们已经有了

  • 我在为考试学习时发现了我无法处理的问题: 设计一个用于处理(封闭)间隔的数据结构,它将提供三个操作: 插入(x,y)-添加间隔[x,y] 移除(x,y)-移除间隔[x,y] Count(x,y)-计算纯粹包含在区间内的区间数[x,y] x、 y是从1到n的整数。所有操作最多需要O((log n)2) 有人能帮忙吗?

  • 我想创建一个. bat文件,它将显示文件名以“多哥”开头的每个. csv文件的最后一行。批处理文件将与. csv文件位于同一个文件夹中。要输出应该是:[文件名][最后一行数据] 此批处理文件应始终每5分钟运行和测试. csv文件。