PHPExcel を使用してテンプレートを開き、データベース クエリから値を挿入して、結果をブラウザに返す PHP スクリプトがあります。Firefox では完全に動作しますが、Internet Explorer (8) では、ファイルを開こうとすると、次のように壊れます。
Internet Explorer は、my.domain から generate.php をダウンロードできません。
Internet Explorer はこのインターネット サイトを開くことができませんでした。要求されたサイトは利用できないか、見つかりません。後でもう一度やり直してください。
私が使用しているコード ( generate.php
) は次のとおりです。
// Open template
$xlRead = PHPExcel_IOFactory::createReader('Excel5');
$xl = $xlRead->load('Template.xls');
$xl->setActiveSheetIndex(0);
// Write data
$xl->getActiveSheet()->fromArray($dbOutput, null, 'A1');
// Output to browser
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename=MyReport.xls');
$xlWrite = PHPExcel_IOFactory::createWriter($xl, 'Excel5');
$xlWrite->save('php://output')
EDITこの問題は、SSL の背後にある IE にのみ影響するようです。そのため、これはいくつかの同様の SO 質問と同じ問題です。人々のアドバイスはヘッダーを微調整することですが、これまでのところ、解決策として私が見たものの組み合わせは機能していません...