sql*_*ild 7 php export phpexcel
PHPExcel生成的excel文件无法正常工作.(文件格式或扩展名无效)
PHPExcel的示例代码在我的本地PC上成功完成,该文件被下载到本地并在Excel 2007中成功打开.但是在我的服务器上使用相同的代码会将无效文件提供给excel,当我打开并修复时,它会成功打开.
我不想使用"打开并修复"选项,只能使用"打开"选项.
找不到问题?请帮忙.
$objPHPExcel->setActiveSheetIndex(0);
//for XLSX
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="item_list.xlsx"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');
exit;
Run Code Online (Sandbox Code Playgroud)
Gov*_*ind 27
在行ob_end_clean();前的程序末尾添加一行$objWriter->save('php://output');
代码如下所示://用于XLSX
$objPHPExcel->setActiveSheetIndex(0);
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="item_list.xlsx"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
ob_end_clean();
$objWriter->save('php://output');
exit;
Run Code Online (Sandbox Code Playgroud)
Mar*_*ker 18
您发布的文件在PHPExcel输出之前有一个空格字符...检查您的脚本以查看它可能发送到php://输出流的位置.检查初始<?php开始标记之前是否没有空格; 特别注意?> <?php或关闭/打开标签.并检查included脚本可能包含的任何文件
通过在文本编辑器中打开任何虚假字符来检查它是否被回显到文件中.如果有,你可以找出他们被介绍的地方.空格或换行是明显的罪魁祸首.
此外,请确保<?php标记之前或?>任何文件中的标记后面没有空格或换行符.
该xlsx格式实际上是一个压缩收集xml文件,所以如果有在文本编辑器都没有明显的文本字符串(PK的签名旁)可见,然后尝试解压它.这可能会为这个问题提供其他线索.
如果您在Windows平台上运行,那么ZipArchive php_zip.dll链接库的一些错误版本可能会导致此错误.您可以使用PCLZip替代ZipArchive.