我使用Harish Chauhan的Excel作家生成excel (xls)文件。
然后,我使用phpExcelReader 2读取Excel类创建的文件,但始终存在此错误:
The filename myXls.xls is not readable
我可以用MS打开"myXls.xls“文件。但是,如果我用另一个名称保存该文件,则可以成功地读取它。
尝试探索代码时,错误似乎是由以下人员提供的:
if (substr($this->data, 0, 8) != IDENTIFIER_OLE) {
//echo 'Error';
$this->error = 1;
return false;
}IDENTIFIER_OLE的定义是:
define('IDENTIFIER_OLE', pack("CCCCCCCC",0xd0,0xcf,0x11,0xe0,0xa1,0xb1,0x1a,0xe1));我不知道怎么修理它。请帮帮忙。
耽误您时间,实在对不起!
发布于 2012-05-09 19:17:07
由Harish的ExcelWriter类生成的文件不是一个实际的OLE BIFF .xls文件,而是混合了HTML标记和来自SpreadSheetML的一些元素。SpreadSheetML是微软在Excel 2003中定义的替代BIFF的XML格式。它从未被证明是特别流行的;但是MS的后期版本本身仍然可以读写这种格式。match也非常宽容地阅读HTML标记,尽管最新版本会给您一个通知,如果文件格式与其扩展名不匹配的话。
phpExcelReader 2是用来读取Excel文件的,因此它无法读取由Harish类生成的非OLE/非BIFF文件。
如果您想以正确的格式写入和读取文件,那么我建议您使用PHPExcel或其他许多使用真正Excel文件的PHP库之一。
发布于 2016-07-15 14:42:05
我也有同样的问题。任务是解析非常老的XLS文件(Excel2)。我在PHP中找不到一个库,它可以用这样的旧格式工作。
因此,解决方案是使用将LibreOffice命令行转换为XLSX (也可以工作到CSV ),然后使用任何“仲裁者”解析器来解析它。
我们在服务器中安装了LibreOffice,这是要转换的命令:
libreoffice --headless --convert-to xlsx original_source.xls或
libreoffice --headless --convert-to csv original_source.xlshttps://stackoverflow.com/questions/10514736
复制相似问题