Excelファイルを出力する小さなPHPExcelスクリプトがあります。問題は、サーバーから開いたときに問題なく開くことができることです。しかし、ブラウザのヘッダーからダウンロードすると機能しません。
インターネットで問題を検索しましたが、役立つものは見つかりませんでした。ob_clean();を試してみました。BOMが問題であるかどうかを確認しましたが、何も機能しませんでした。
ですから、私のスクリプトを機能させる1つのアイデアを持っている人がいることを願っています。
$this->objPHPExcel = $this->objReader->load($this->newFilePath);
$objWorksheet = $this->objPHPExcel->getActiveSheet();
$objWriter = PHPExcel_IOFactory::createWriter($this->objPHPExcel, 'Excel2007');
//Adding IO General Overhead
foreach($this->sums as $sumkey => $sumval){
foreach($sumval as $keys => $vals){
foreach($vals as $key => $val){
$objWorksheet->setCellValueByColumnAndRow($key, $offset[$sumkey][$keys], $val);
}
}
$objWriter->save($this->newFilePath);
}
ob_clean();
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
// It will be called file.xls
header('Content-Disposition: attachment; filename="'.$this->newFilePath.'"');
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");