Задать вопрос
@borschtWITHgarlic

Почему возникает ошибка при открытии файла созданного через PhpSpreadsheet?

Мой код по созданию excel файла:
header('Content-Type: application/json');

$spreadsheet = new PhpOffice\PhpSpreadsheet\Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();

//формирую массив с данными

$sheet->fromArray($arrayData, NULL, 'A1');

$writer = new PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
ob_start();
$writer->save('php://output');
$xlsData = ob_get_contents();
ob_end_clean();

echo json_encode('data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,'.base64_encode($xlsData));


Скачиваю на комп., файл не открывается и выдает ошибку:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
error051840_01.xmlОбнаружены ошибки в файле "C:\Users\apisi\Downloads\Report (6).xlsx"Была выполнена проверка на уровне файла с последующим восстановлением файла. Некоторые фрагменты документа могли быть восстановлены либо удалены.

Файл можно открыть только если в свойствах поставить галку:
5f32cc1819b6e754559123.png

Покопалась в интернете, в основном в заголовки упирается все или в конце скрипта поставить die;
Ничего из этого не помогает.
  • Вопрос задан
  • 1197 просмотров
Подписаться 1 Простой 5 комментариев
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
@Configural
У меня тоже такое было, вылезло после обновления Phpspreadsheet, причем не во всех файлах, а только там где были поля со списками допустимых значений (они эти значения тянулись со второго листа). Проект на Laravel 5.4. Решилось даунгрейдом пакета до версии до 1.14 (в которой гарантированно работало). В composer.json принудительно задал версию (без префиксов типа ^ или ~)

"require": {
...
"phpoffice/phpspreadsheet": "1.14",
...
},

и запустил composer update.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽