我使用Ben Nadel的POIUtility.cfm来读取和写入Excel文件。我可以使用给定的代码/文件轻松阅读一些文件。但对于其他一些文件,我不断收到实例化错误。我无法弄清楚出了什么问题。
代码:
<cfset arrSheets = objPOI.ReadExcel(
FilePath = ExpandPath( "./File giving error.xls" ),
HasHeaderRow = true
) />
错误:
对象实例化异常。
实例化Java对象时发生异常。班级 不能是接口或抽象类。
我正在使用CF10,IIS上本地托管的站点。 Link to sample file
答案 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,它已经有电子表格功能,因此组件变得不那么必要了。