PHP: файлы Zibies, как XLSX вызывает файл, чтобы стать недействительным
-
26-09-2019 - |
Вопрос
Я должен заменить переменные внутри пользовательского файла XLSX и делаю это таким образом:
- Переименуйте .xlsx до .zip
- Расстегнуть в TEMP-папку
- Делать необходимые изменения
- Zip файлы
- Переименуйте .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.