PHP:xlsxがファイルを無効にするため、ファイルをzipp
-
26-09-2019 - |
質問
ユーザーがサビされたXLSXファイル内の変数を置き換える必要があり、このようにしています。
- .xlsxの名前を.zipに変更します
- 温度折りたたみにジップします
- 必要な変更を加えます
- ファイルをジップします
- .zipを.xslxに変更します
私はPHPでPlane Ziparchiveを使用しています。 Excelで生成された.xlsxを開こうとすると、メッセージが失敗します format or extension invalid
. 。 winrar(zipとして)で一時ファイルを圧縮し、結果のファイルを.xlsxに変更すると動作します。両方のメソッドで生成されたZIPファイルには、同じデータ構造とファイルが含まれていますが、WinRARファイルはわずかに大きくなっています(10.2K対10.3Kと通常の圧縮)。
ファイルの文字化けコードを表示するとき、ファイルが別の順序で表示されることがわかりましたが、それが原因かどうかはわかりません。どんな手がかりも大歓迎です。
解決
別のコンポーネントPCLZIP(phpconcept.net/pclzip)で動作するようにしました。これは明らかにGZIPを使用しているクラスであり、その出力を.xlsxに変更することはExcel 2007で問題ありません。
所属していません StackOverflow