PHPExcelが文字化けしたXLSをエクスポートする
ringa_lee
ringa_lee 2017-05-16 13:03:35
0
2
779

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_lee
ringa_lee

ringa_lee

全員に返信(2)
習慣沉默

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

いいねを押す +0
Ty80

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
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート