ユーザーが送信した xlsx ファイル内の変数を置き換える必要があり、次のようにしています。
- .xlsx の名前を .zip に変更します
- 一時フォルダーに解凍します
- 必要な変更を加える
- ファイルを圧縮する
- .zip の名前を .xslx に変更します
PHPでプレーンなZipArchiveを使用しています。生成された .xlsx を Excel で開こうとすると、メッセージが表示されて失敗しますformat or extension invalid
。一時ファイルを WinRAR で (zip として) 圧縮し、結果のファイルの名前を .xlsx に変更すると、機能します。両方の方法で生成された zip ファイルには同じデータ構造とファイルが含まれていますが、WinRAR ファイルはわずかに大きくなっています (通常の圧縮では 10.2K 対 10.3K)。
ファイルの文字化けしたコードを表示すると、ファイルが異なる順序で表示されていることがわかりましたが、それが原因かどうかはわかりません。手がかりは大歓迎です。