0

我正在通过 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������������������������������������������������������������������ ����������������������������8���������������������������� ����3f������ff����������������������������������������̙ ��̙3f�3����������fff����3f3�f333�3�3f33�333� iD07_12_ACT_N��g���W&文件创建于 2012 年 9 月 6 日 - 14:19:28 � �*+������&ffffff�?'ffffff�?(�?)�?�"dXX333333�?333333�?U}$ � >�@gg������根条目�������� �F�ß:���ß:����工作簿��������������F���� ������������������������������������������������������ ������������������������������������������������������ ������������������������������������������������������ ������������������������������������������������������ ������������������������������������������������������ ������������������������������������������������������ ������������������������������������������������������ ������������������������������������������������������ ������������������������������������������������������ ������������������������������������������������������ �</p>����工作簿������������������������������������������������ ������������������������������������������������������ ������������������������������������������������������ ������������������������������������������������������ ������������������������������������������������������ ������������������������������������������������������ ������������������������������������������������������ ������������������������������������������������������ ������������������������������������������������������ ������������������������������������������������������ ������������������������</p>����工作簿������������������������������������������������ ������������������������������������������������������ ������������������������������������������������������ ������������������������������������������������������ ������������������������������������������������������ ������������������������������������������������������ ������������������������������������������������������ ������������������������������������������������������ ������������������������������������������������������ ������������������������������������������������������ ������������������������</p>

我没有将询问的内容输出为 excel 表,而是获取了 excel 表的编码内容。

谁能解决这个问题?

谢谢

4

2 回答 2

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');
于 2012-09-06T13:13:05.950 回答
0
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="01simple.xls"');
header('Cache-Control: max-age=0');

对于大多数浏览器来说应该足够了(基于 SSL 的 IE 是一个例外):/Tests/01simple-download-xls.php 工作吗?

在标题之前你有任何输出到浏览器吗?

于 2012-09-06T12:40:03.360 回答