Pergunta

Eu tenho que substituir variáveis ​​dentro de um arquivo xlsx enviado pelo usuário e estou fazendo desta forma:

  1. Renomeie o .xlsx para .zip
  2. Descompacte para uma pasta temporária
  3. Faça as alterações necessárias
  4. Compacte os arquivos
  5. Renomeie o .zip para .xslx

Estou usando ZipArchive simples em PHP.Quando tento abrir o .xlsx gerado no Excel, ele falha com uma mensagem format or extension invalid.Quando comprimo os arquivos temporários com WinRAR (como zip) e renomeio o arquivo resultante para .xlsx, ele funciona.Os arquivos zip gerados com ambos os métodos contêm a mesma estrutura de dados e arquivos, mas o arquivo WinRAR é um pouco maior (10,2K vs.10,3K com compactação normal).

Ao visualizar o código distorcido dos arquivos, pude perceber que os arquivos aparecem em uma ordem diferente, mas não sei se essa é a causa.Qualquer pista seria muito apreciada.

Foi útil?

Solução

Consegui que funcionasse com outro componente, PclZip (phpconcept.net/pclzip).É uma classe que aparentemente usa gzip, e renomear suas saídas para .xlsx é adequado para o Excel 2007.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top