PHPExcel return 损坏的二进制文件
PHPExcel return a corrupted binary file
我想写一个参考xls文件并检索结果。
当我用单个文件测试时,它可以工作,但是当参考文件很复杂时,这个 returns 我是一个包含各种数据的损坏文件:
开头是这样的:
我的 php 文件是:
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
date_default_timezone_set('Europe/London');
if (PHP_SAPI == 'cli')
die('This example should only be run from a Web Browser');
/** Include PHPExcel */
require_once '../phpexcel/Classes/PHPExcel.php';
$objPHPexcel = PHPExcel_IOFactory::load('../upload/ref/fileref.xls');
$objWorksheet = $objPHPexcel->getActiveSheet();
$objWorksheet = $objPHPexcel->getActiveSheet();
$objWorksheet->getCell('B1')->setValue('toto');
$objWorksheet->getCell('B3')->setValue('toto');
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="newfiletodownload.xls"');;
header('Cache-Control: max-age=0');
header('Cache-Control: max-age=1');
header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header ('Cache-Control: cache, must-revalidate');
header ('Pragma: public');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPexcel, 'Excel5');
$objWriter->save('php://output');
你有解决办法吗?
谢谢,Neyoh
你能试着把 ob_end_clean();
放在 header(...)
部分之前吗?
这对遇到同样问题的人有效。请参阅此 post 的已接受答案的评论:PHPExcel generated excel file not working. (File format or extension is invalid )。
注意:
使用 ob_end_clean()
只是解决此问题的方法。主要问题是额外的和不必要的输出被发送到导致文件混乱的 PHPExcelWriter
。
我想写一个参考xls文件并检索结果。
当我用单个文件测试时,它可以工作,但是当参考文件很复杂时,这个 returns 我是一个包含各种数据的损坏文件:
我的 php 文件是:
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
date_default_timezone_set('Europe/London');
if (PHP_SAPI == 'cli')
die('This example should only be run from a Web Browser');
/** Include PHPExcel */
require_once '../phpexcel/Classes/PHPExcel.php';
$objPHPexcel = PHPExcel_IOFactory::load('../upload/ref/fileref.xls');
$objWorksheet = $objPHPexcel->getActiveSheet();
$objWorksheet = $objPHPexcel->getActiveSheet();
$objWorksheet->getCell('B1')->setValue('toto');
$objWorksheet->getCell('B3')->setValue('toto');
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="newfiletodownload.xls"');;
header('Cache-Control: max-age=0');
header('Cache-Control: max-age=1');
header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header ('Cache-Control: cache, must-revalidate');
header ('Pragma: public');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPexcel, 'Excel5');
$objWriter->save('php://output');
你有解决办法吗? 谢谢,Neyoh
你能试着把 ob_end_clean();
放在 header(...)
部分之前吗?
这对遇到同样问题的人有效。请参阅此 post 的已接受答案的评论:PHPExcel generated excel file not working. (File format or extension is invalid )。
注意:
使用 ob_end_clean()
只是解决此问题的方法。主要问题是额外的和不必要的输出被发送到导致文件混乱的 PHPExcelWriter
。