Pregunta

Tengo que reemplazar las variables dentro de un archivo XLSX enviado por el usuario y lo estoy haciendo de esta manera:

  1. Cambie el nombre de .xlsx a .zip
  2. Descomprimir a un plateador templado
  3. Hacer los cambios necesarios
  4. Zip los archivos
  5. Cambie el nombre del .zip a .xslx

Estoy usando Ziparchive simple en PHP. Cuando intento abrir el .xlsx generado en Excel, falla con un mensaje format or extension invalid. Cuando comprimo los archivos temporales con Winrar (como zip) y renombro el archivo resultante a .xlsx, funciona. Los archivos ZIP generados con ambos métodos contienen la misma estructura de datos y archivos, pero el archivo Winrar es ligeramente más grande (10.2k frente a 10.3k con compresión normal).

Al ver el código confuso de los archivos, pude ver que los archivos aparecen en un orden diferente, pero no sé si esa es la causa. Cualquier pista sería muy apreciada.

¿Fue útil?

Solución

Lo conseguí para funcionar con otro componente, PCLZIP (phpconcept.net/pclzip). Es una clase que aparentemente usa GZIP, y renombrar sus salidas a .XLSX están bien con Excel 2007.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top