我必须在用户提取的XLSX文件中替换变量,并以此方式进行操作:

  1. 将.xlsx重命名为.zip
  2. 解压缩
  3. 进行必要的更改
  4. 拉链文件
  5. 重命名为.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则可以。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top