php:将文件作为XLSX缩放导致文件变得无效
-
26-09-2019 - |
题
我必须在用户提取的XLSX文件中替换变量,并以此方式进行操作:
- 将.xlsx重命名为.zip
- 解压缩
- 进行必要的更改
- 拉链文件
- 重命名为.xslx
我在PHP中使用了普通的Ziparchive。当我尝试在Excel中打开生成的.xlsx时,它会失败。 format or extension invalid
. 。当我用winrar(作为zip)压缩临时文件,然后将结果文件重命名为.xlsx时,它可以正常工作。使用这两种方法生成的ZIP文件都包含相同的数据结构和文件,但是Winrar文件略大(10.2k vs. 10.3k,正常压缩)。
在查看文件的乱码代码时,我可以看到文件以不同的顺序出现,但不知道这是否是原因。任何线索都将不胜感激。
解决方案
我让它与另一个组件PCLZIP(phpconcept.net/pclzip)一起使用。这是一个显然使用GZIP的类,并且将其输出重命名为.xlsx,而Excel 2007则可以。
不隶属于 StackOverflow