PHP: файлы Zibies, как XLSX вызывает файл, чтобы стать недействительным

StackOverflow https://stackoverflow.com/questions/3836100

Вопрос

Я должен заменить переменные внутри пользовательского файла XLSX и делаю это таким образом:

  1. Переименуйте .xlsx до .zip
  2. Расстегнуть в TEMP-папку
  3. Делать необходимые изменения
  4. Zip файлы
  5. Переименуйте .zip в .xslx

Я использую простой зипархив в PHP. Когда я пытаюсь открыть сгенерированный .xlsx в Excel, он не удается с сообщением format or extension invalid. Отказ Когда я сжимаю временные файлы с WinRAR (как ZIP), и переименуйте результирующий файл в .xlsx, он работает. Файлы ZIP, сгенерированные с обоими методами, содержат одну и ту же структуру и файлы данных, но файл WinRAR немного больше (10.2k против 10,3k с нормальным сжатием).

При просмотре искаженного кода файлов я мог видеть, что файлы появляются в другом порядке, но не знаете, является ли это причиной. Любая подсказка будет очень ценится.

Это было полезно?

Решение

Я получил его на работу с другим компонентом PCLZIP (phpconect.net/pclzip). Это класс, который, по-видимому, использует GZIP, и переименование его выходов к .xlsx в порядке с Excel 2007.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top