POIUtility.cfc - 无法读取excel文件:“对象实例化异常”

时间:2017-02-03 13:17:23

标签: coldfusion coldfusion-10 cfc cfspreadsheet

我使用Ben Nadel的POIUtility.cfm来读取和写入Excel文件。我可以使用给定的代码/文件轻松阅读一些文件。但对于其他一些文件,我不断收到实例化错误。我无法弄清楚出了什么问题。

代码:

<cfset arrSheets = objPOI.ReadExcel( 
    FilePath = ExpandPath( "./File giving error.xls" ),
    HasHeaderRow = true
    ) />

错误:

  

对象实例化异常。

     

实例化Java对象时发生异常。班级   不能是接口或抽象类。

我正在使用CF10,IIS上本地托管的站点。 Link to sample file

Object instantiation exception

1 个答案:

答案 0 :(得分:0)

简答:

您尝试阅读的文件格式太旧(Excel 95)。 POI仅支持Excel 97及更高版本。除非你真的有旧格式的文件,否则我不担心。

鉴于{10}内置了spreadsheet functions,您可能甚至不需要POIUtility。

更长的回答:

如果查看堆栈跟踪的结尾,&#34;由&#34;引起。消息说明不支持格式Excel 95 (BIFF5)。 (已经二十多岁了!)。要使该文件与POI兼容,您需要使用其他工具(如Excel),并将其保存为Excel 97格式(或更高版本)。

  

引起:org.apache.poi.hssf.OldExcelFormatException:提供的电子表格似乎是Excel 5.0 / 7.0(BIFF5)格式。 POI仅支持BIFF8格式(来自Excel版本97/2000 / XP / 2003)

另外,POIUtility最初是在ColdFusion 7时代设计的,因为它没有官方支持操作电子表格。但是,CF7确实包含了POI库。因此编写该组件以填补空白。然后是CF9,它已经有电子表格功能,因此组件变得不那么必要了。