Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Coldfusion POIUtility.cfc-无法读取excel文件;对象实例化异常";_Coldfusion_Coldfusion 10_Cfc_Cfspreadsheet - Fatal编程技术网

Coldfusion POIUtility.cfc-无法读取excel文件;对象实例化异常";

Coldfusion POIUtility.cfc-无法读取excel文件;对象实例化异常";,coldfusion,coldfusion-10,cfc,cfspreadsheet,Coldfusion,Coldfusion 10,Cfc,Cfspreadsheet,我在用Ben Nadel的读写Excel文件。使用给定的代码/文件,我可以很容易地读取一些文件。但是对于其他一些文件,我不断得到一个实例化错误。我不知道出了什么问题 代码: <cfset arrSheets = objPOI.ReadExcel( FilePath = ExpandPath( "./File giving error.xls" ), HasHeaderRow = true ) /> 错误: <cfset arrSheets = o

我在用Ben Nadel的读写Excel文件。使用给定的代码/文件,我可以很容易地读取一些文件。但是对于其他一些文件,我不断得到一个实例化错误。我不知道出了什么问题

代码:

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

错误:

<cfset arrSheets = objPOI.ReadExcel( 
    FilePath = ExpandPath( "./File giving error.xls" ),
    HasHeaderRow = true
    ) />
对象实例化异常

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

我使用的是CF10,它是本地托管在IIS上的站点


简短回答:

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

考虑到CF10中内置了这些工具,您甚至可能不需要POI实用程序

更长的回答:

<cfset arrSheets = objPOI.ReadExcel( 
    FilePath = ExpandPath( "./File giving error.xls" ),
    HasHeaderRow = true
    ) />
如果查看堆栈跟踪的末尾,“原因”消息说明不支持该格式。(它已经有二十多年的历史了!)。要使该文件与POI兼容,您需要使用另一个工具(如Excel)保存该文件,并将其保存为Excel 97格式(或更高版本)

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


另一方面,POI实用程序最初是在ColdFusion 7时代设计的,因为它没有官方支持操纵电子表格。然而,CF7确实包含POI库。因此,编写该组件是为了填补空白。随后出现了CF9,它已经嵌入了电子表格功能,因此该组件变得不那么必要。

CF10有电子表格标签。你确定你真的需要使用POI吗?你的屏幕截图中提到了ColdFusion 7(正如我们所说,CF10已经有了电子表格支持。因此,如果你正在转换旧版应用程序,你可能需要升级代码。)为了回答您的问题-如果您查看堆栈跟踪-错误消息说文件格式不受支持:提供的电子表格似乎是Excel 5.0/7.0(BIFF5)格式。POI仅支持BIFF8格式(来自Excel 97/2000/…)?如果您尝试使用CF10的函数读取它,会发生什么情况?