PHPExcel文件不是正确的Microsoft Excel 2003 XLS格式

时间:2014-07-23 13:42:10

标签: php phpexcel xls

我使用PHPExcel 1.8使用以下代码生成Excell 2003:

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('toUploadFtp.xls');

该文件似乎没问题,我可以使用MS Office和LibreOffice阅读它。

但是我必须将文件上传到一个系统,说明格式必须是Excell 2003,并且他会提示下一个错误:

  

糟糕!您的文件不是正确的Microsoft Excel 2003 XLS格式。

如果我用LibreOffice打开文件并再次保存,那么我可以正确地将文件上传到系统。

有什么想法吗?

谢谢,

4 个答案:

答案 0 :(得分:3)

通过将正确的版本传递给factory来创建文件:

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');

希望它有所帮助。

答案 1 :(得分:1)

完全不理解完全问题:它似乎与Excel文件的额外传输有关。

一个错误通常是PHP脚本输出虚假数据。

退出最终%>是一个标准技巧,可确保不会在文件中添加额外的最终新行字符。

比较生成和传输的文件应该能够深入了解出了什么问题。

您可能需要将内容设置为非文本以防止某些文本转换:

header('Content-Type: application/octet'):

答案 2 :(得分:1)

最后我找不到解决方案。它必须是XLS 2003格式的某种错误。

但是我使用$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');生成了一个XLSX,系统正确识别它。

答案 3 :(得分:0)

我认为你可以在更改Excel5的字段时克服这个问题。因为我曾经尝试过phpexcel,我对此不太了解。但我认为你可以找到这个[这里]的解决方案。{{ 3}}