Я использую последнюю библиотеку PHPExcel
для создания .xls
, .xlsx
файлов. При попытке вывода созданного файла, как это:PHPExcel excel2007 php output с диаграммами
ob_end_clean();
$file = 'test.xls';
header('Content-Type: application/vnd.ms-excel; charset=UTF-8');
header('Content-Disposition: attachment; filename="'.$file.'"');
header('Cache-Control: max-age=0');
header('Cache-Control: max-age=1');
$objPHPWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objPHPWriter->setIncludeCharts(TRUE);
$objPHPWriter->save('php://output');
exit;
все хорошо, пока я пытаюсь создать и вывести любой charts
. Поэтому я изменил свой код в соответствии с примером:
ob_end_clean();
$objPHPWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objPHPWriter->setIncludeCharts(TRUE);
$objPHPWriter->save(str_replace('.php', '.xlsx', __FILE__));
exit;
Это работает, но файл не загружен. Так я модифицированный код для вывода созданного файла:
ob_end_clean();
$file = 'test.xlsx';
header('Content-Type: Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; charset=UTF-8');
header('Content-Disposition: attachment; filename="'.$file.'"');
header('Cache-Control: max-age=0');
header('Cache-Control: max-age=1');
$objPHPWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objPHPWriter->setIncludeCharts(TRUE);
$objPHPWriter->save('php://output');
exit;
И это не работает, заканчивается ERR_INVALID_RESPONSE.
Также, когда я храню файл excel
с диаграммами со вторым блоком кода, он не совместим с MS Excel 2016
. В нем говорится, что файл поврежден, и данные были заменены или удалены. Что мне не хватает? Большое спасибо.
'И это не работает.' Это означает, что именно? Он отображает сообщения об ошибках? Он создает поврежденный файл? Это заставляет сервер съесть вашего домашнего хомяка? –
Excel5 Writer не поддерживает диаграммы, поэтому ваш первый пример не будет содержать никаких диаграмм вообще –
Если вы вручную загрузите объявление, откройте файл с MS Excel во втором примере, что произойдет? –