PHPExcel возвращает поврежденный двоичный файл

Я хочу написать справочный файл xls и получить результат.
Когда я тестировал один файл, он работает, но когда эталонный файл сложный, это возвращает мне поврежденный файл с видами данных:
введите описание изображения здесь

введите описание изображения здесь
Что в начале так:
введите описание изображения здесь

Мой файл php:

error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
date_default_timezone_set('Europe/London');

if (PHP_SAPI == 'cli')
die('This example should only be run from a Web Browser');

/** Include PHPExcel */
require_once '../phpexcel/Classes/PHPExcel.php';
$objPHPexcel = PHPExcel_IOFactory::load('../upload/ref/fileref.xls');

$objWorksheet = $objPHPexcel->getActiveSheet();

$objWorksheet = $objPHPexcel->getActiveSheet();
$objWorksheet->getCell('B1')->setValue('toto');
$objWorksheet->getCell('B3')->setValue('toto');header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="newfiletodownload.xls"');;
header('Cache-Control: max-age=0');
header('Cache-Control: max-age=1');
header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header ('Cache-Control: cache, must-revalidate');
header ('Pragma: public');

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

У вас есть решение?
Спасибо, Нейох

5

Решение

Можешь попробовать поставить ob_end_clean(); как раз перед header(...) часть?

Это сработало для кого-то с той же проблемой. Смотрите комментарий на принятый ответ этого поста: Сгенерированный PHPExcel файл Excel не работает. (Формат файла или расширение неверно).

Заметка:

С помощью ob_end_clean() это просто обходной путь для этой проблемы. Основная проблема заключается в том, что дополнительные и ненужные выходы отправляются на PHPExcelWriter это приводит к тому, что файл испортился.

14

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]