PHP:将文件压缩为xlsx会导致文件无效

时间:2010-10-01 02:14:38

标签: php zip excel-2007 xlsx ziparchive

我必须替换用户提交的xlsx文件中的变量,并且这样做:

  1. 将.xlsx重命名为.zip
  2. 解压缩到临时文件夹
  3. 进行必要的更改
  4. 压缩文件
  5. 将.zip重命名为.xslx
  6. 我在PHP中使用普通的ZipArchive。当我尝试在Excel中打开生成的.xlsx时,它失败并显示消息format or extension invalid。当我使用WinRAR(作为zip)压缩临时文件,并将生成的文件重命名为.xlsx时,它可以工作。使用这两种方法生成的zip文件包含相同的数据结构和文件,但WinRAR文件略大(10.2K与正常压缩时的10.3K)。

    当查看文件的乱码时,我可以看到文件以不同的顺序出现,但不知道是否是原因。任何线索都将非常感激。

1 个答案:

答案 0 :(得分:0)

我让它与另一个组件PclZip(phpconcept.net/pclzip)一起工作。这是一个显然使用gzip的类,并且使用Excel 2007将它的输出重命名为.xlsx就可以了。