0

PHP Excel を使用して Excel ドキュメントを生成しています。ユーザーは、ファイルの内容をブラウザに直接出力するよう求めています。私は次のコードを書きました(Googleによる調査の後):

$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���f��������������������������������̙ ��̙3f�3�������fff����3f3�f333�3�3f33�333� iD07_12_ACT_N��g���W&File created at 06 Sep 2012 - 14:19:28 � � �*+������&ffffff�?'ffffff�?(�?)�?�"dXX333333�?333333�?U}$�>�@gg����� ルート エントリ�������� �F�ß:���ß:���Workbook������������ �F���� ������������������������������������������������ ������������������������������������������������ ������������������������������������������������ ������������������������������������������������ ������������������������������������������������ ������������������������������������������������ ������������������������������������������������ ������������������������������������������������ ������������������������������������������������ ������������������������������������������������ �</p>����ワークブック������������ �F�������������������������������� ������������������������������������������������ ������������������������������������������������ ������������������������������������������������ ������������������������������������������������ ������������������������������������������������ ������������������������������������������������ ������������������������������������������������ ������������������������������������������������ ������������������������������������������������ ������������������������</p>����ワークブック������������ �F�������������������������������� ������������������������������������������������ ������������������������������������������������ ������������������������������������������������ ������������������������������������������������ ������������������������������������������������ ������������������������������������������������ ������������������������������������������������ ������������������������������������������������ ������������������������������������������������ ������������������������</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');

ほとんどのブラウザーで十分なはずです (IE over SSL は例外です): /Tests/01simple-download-xls.php は動作しますか?

ヘッダーの前にブラウザーへの出力はありますか?

于 2012-09-06T12:40:03.360 に答える