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


PHPExcel file not in the proper Microsoft Excel 2003 XLS format

我正在使用PHPExcel 1.8生成excel 2003,代码如下:

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

文件看起来不错,我可以用MS Office和LibreOffice来阅读。

但是我必须把文件上传到一个要求格式必须是excel 2003的系统,然后他提示下一个错误:

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

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

任何想法?

谢谢,

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

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

希望能有所帮助。

没有完全理解确切的问题:似乎是与Excel文件的额外传输有关。

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

省略最后的%>是一个标准的技巧,以确保没有额外的最后的新行字符被添加到文件中。

比较生成的文件和传输的文件,可以了解哪里出了问题。

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

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

最后我找不到解决办法。这一定是XLS 2003格式中的某种错误。

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

我认为你可以在改变Excel5的字段中克服这个问题,因为我没有尝试过php,所以我不太了解这个问题,但我认为你可以找到解决这个问题的方法[在这里].1