lculver
@lculver
web-программист

Как правильно выгружать файл из PHPExcel?

Здравствуйте. С помощью PHPExcel пытаюсь выгрузить файл пользователю:
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="'.$filename.'"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($workbook, 'Excel2007');
$objWriter->setPreCalculateFormulas(false);
$objWriter->save('php://output');

Файл выгружается но при открытии выдаёт ошибку. Если я не выгружаю тот самый файл, а сохраняю на диске:
$objWriter = PHPExcel_IOFactory::createWriter($workbook, 'Excel2007');
$objWriter->save("c:\\l\\".$filename);

то файл открывается без проблем. Содержимое выгруженного файла от сохранённого отличается наличием одного пробела в самом начале. Если текстовым редактором удалить этот пробел, то Excel открывает файл без проблем.
Я исследовал метод save и обнаружил, что он в обоих случаях создаёт файл на диске, но в случае необходимости выгрузки, выдаёт его командой:
copy($pFilename, $originalFilename)
где $pFilename - временный файл, $originalFilename - 'php://output'.
Подскажите пожалуйста, где в таком случае, может добавляться пробел в начало файла? И как это исправить?
  • Вопрос задан
  • 953 просмотра
Решения вопроса 1
@BorisKorobkov Куратор тега PHP
Web developer
Ищите этот пробел где-то в вашем скрипте. Например, рядом с <?php
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы