Как сохранить файл созданный с помощью PHPExcel?

Аватар пользователя pingvin156 pingvin156 15 декабря 2018 в 15:14

Программно я создаю файл Excel. Далее его необходимо сохранить. На рабочей станции у меня работает сохранение:

PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP);
$objWriter = PHPExcel_IOFactory::createWriter($phpexcel, 'Excel2007');
$basename = transliterate("Attachment-".str_replace("\\", "-", str_replace("/", "-", $agreement->sNumber)) . '-' . $agreement->dCreate."-".date("M-d-Y-h-m-s").".xlsx");
$filename = \Drupal::service('file_system')->realpath(file_default_scheme() . "://") . "/OrderAttachments/" . $basename;
$objWriter->save($filename);

А на сервере вылетает в ошибку:

PHPExcel_Writer_Exception: Error zipping files : PCLZIP_ERR_MISSING_FILE (-4) : File '/[Content_Types].xml' does not exist in PHPExcel_Shared_ZipArchive->addFromString() (line 96 of /var/www/user18184/data/www/500services.com/PHPExcel/Classes/PHPExcel/Shared/ZipArchive.php).

Что это за xml-файл, я так и не понял.

Лучший ответ

Аватар пользователя pingvin156 pingvin156 16 декабря 2018 в 17:12

Убрал PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP); и заработало.

Комментарии

Аватар пользователя bumble bumble 15 декабря 2018 в 17:24
1

1. PHPSpreadsheet же.
2. Скорее всего, не подготовленная ФС. Проверяйте наличие директорий, согласно пути. Необходимые права создавайте.
3. Все документы - это сжатые XML-файлы.

Аватар пользователя gun_dose gun_dose 16 декабря 2018 в 16:41

Посмотрите отчёт о состоянии. Обычно если с правами на временную папку что-то не так, то там показывается эта ошибка.