Предупреждение «Excel обнаружил нечитаемый контент» при открытии файлов Excel, созданных с помощью PHPExcel

Я пытаюсь загрузить файлы Excel (xlsx) с помощьюPHPExcelследующим образом.

require_once("../../phpExcel/Classes/PHPExcel.php");
require_once("../../phpExcel/Classes/PHPExcel/IOFactory.php");

$objPHPExcel = new PHPExcel();

$objPHPExcel->getProperties()->setCreator("Tiny")
->setLastModifiedBy("Tiny")
->setTitle("Office 2007 XLSX Test Document")
->setSubject("Office 2007 XLSX Test Document")
->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.");

$objPHPExcel->setActiveSheetIndex(0);
$sheet=$objPHPExcel->getActiveSheet();
$sheet->setCellValue('A1', 'Hello');
$sheet->setCellValue('B2', 'world!');
$sheet->setCellValue('C1', 'Hello');
$sheet->setCellValue('D2', 'world!');

header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="test.xlsx"');
header('Cache-Control: max-age=0');

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');

Это работает, но когда я пытаюсь открыть файл Excel, он запрашивает подтверждение в диалоговом окне соответствия.

Excel обнаружил нечитаемое содержимое в «test.xlsx». Вы хотите выздороветь содержание этой рабочей тетради? Если вы доверяете источнику этого книгу, щелкните Да.

Я также пытался изменить заголовок следующим образом

header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");;
header("Content-Disposition: attachment;filename=test.xlsx");
header("Content-Transfer-Encoding: binary");

Он все еще запрашивает такое же подтверждение. Что я делаю не так, пожалуйста?

18
задан Tiny 29 January 2014 в 19:59
поделиться