検索

ホームページ  >  に質問  >  本文

PHPExcelが文字化けしたXLSをエクスポートする

PHPExcel の save メソッドを使用する場合

// xls ファイルとして保存しますが、これはサーバーにのみ保存されるため、手動でローカルにダウンロードする必要があります。
$writer->save('製品リスト.xls');

直接ダウンロード:

 if ($this->fileVersion == 'Excel5') {
            header('Content-Type: application/vnd.ms-excel'); // xls形式でファイルを出力します。
            header('Content-Disposition:attachment;filename="' . $config['fileName'] . '.xls"'); // 出力ファイルの名前をブラウザに通知します。
        } それ以外 {
            header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); // xlsx 形式でファイルを出力します
            header('Content-Disposition:attachment;filename="' . $config['fileName'] . '.xlsx"'); // 出力ファイルの名前をブラウザに通知します。
        }

        // IE 9 にサービスを提供している場合は、次のものが必要になる場合があります
        header('キャッシュ制御: max-age=1');

        // SSL 経由で IE にサービスを提供している場合は、次のものが必要になる場合があります
        header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // 過去の日付
        header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
        header('キャッシュ制御: キャッシュ、必須再検証'); // HTTP/1.1
        header('プラグマ: public'); // HTTP/1.0

        $writer->save('php://output');

エクスポートされた xls ファイルは、php://output を通じて直接ダウンロードできます。xls ファイルはサーバー上に生成されません。
ただし、ダウンロード時にエラーが直接報告されます。このエラーはブラウザーで報告されます。開発者ツールがネットワークに表示されましたが、ファイルのダウンロード操作をトリガーしませんでした

< /p>

この文字化けしたコードがヘッダーの直前にある場合、print_r($writer); はオブジェクト $writer 文字化け

この質問について非常に混乱しています

ringa_leeringa_lee2749日前772

全員に返信(2)返信します

  • 習慣沉默

    習慣沉默2017-05-16 13:05:35

    この方法ではエクスポートされたファイルを直接ダウンロードできますが、Ajaxは使用できません

    返事
    0
  • PHP中文网

    PHP中文网2017-05-16 13:05:35

    header('Content-Type: application/vnd.ms-excel');改为header('Content-Type: application/vnd.ms-excel; charset=UTF-8');
    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');改为header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; charset=UTF-8');

    返事
    0
  • キャンセル返事