我正在通过PHP Excel生成Excel文档。 用户要求将文件内容直接输出到浏览器。 我写了以下代码(通过谷歌研究后):
$writer = PHPExcel_IOFactory::createWriter($xcel, 'Excel5');
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-type: applicaton/vnd.ms-excel");
header("Content-type: application/force-download");
header("Content-type: application/octet-stream");
header("Content-type: application/download");;
header("Content-Disposition: attachment;filename=File.xlsx");
header("Expires: 0");
header("Pragma: public");
$writer->save('php://output');
结果如下:
ࡱ;
B = %r8X“1 Calibri 83ffff ̙̙3f3fff 3f3f33333f33333 iD07_12_ACT_N g W&文件于2012年9月6日创建 - 14:19:28 * +放大器;?(?)???FFFFFF“FFFFFF”dXX333333 333333蓝} $ > @gg RootEntry FSS:SS:工作簿 ˚F
我没有将询问的内容作为excel表输出,而是获得了excel表的编码内容。
任何可以解决此问题的人?
THX
答案 0 :(得分:3)
如果要生成xls(Excel5)文件,请尝试:
$writer = PHPExcel_IOFactory::createWriter($xcel, 'Excel5');
header('Content-Type: application/vnd.ms-excel');
header("Content-Disposition: attachment;filename=File.xls");
header('Cache-Control: max-age=0');
$writer->save('php://output');
如果你想要一个xlsx(对于excel 2007或更高版本)文件,请试试这个:
$writer = PHPExcel_IOFactory::createWriter($xcel, 'Excel2007');
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header("Content-Disposition: attachment;filename=File.xlsx");
header('Cache-Control: max-age=0');
$writer->save('php://output');
答案 1 :(得分:0)
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="01simple.xls"');
header('Cache-Control: max-age=0');
对于大多数浏览器来说,应该足够了(IE over SSL是一个例外):/ Tests/01simple-download-xls.php是否有效?
在标题之前,您是否有任何输出到浏览器?