OpenPyXL関連の検索キーワードに気付いて以来、OpenPyXLとPythonで遊んでいます。
OpenPyXLで拡張子を.xlsにしてブックを保存すると、どうなるのかが気になったので試してみました。
OpenPyXLのWorkbook.saveで拡張子に.xlsを指定して保存
Workbook.saveメソッドで保存するときに拡張子が.xlsだと、エラーになったりするのかな、と思いつつ以下のようなスクリプトを作成しました。wb = openpyxl.Workbook()
ws = wb.active
ws['A1'].value = 'hello, world.'
wb.save('C:\\temp\\test.xls')
実行してみると特にエラーは発生することなく、指定したとおりに保存されます。
拡張子.xlsで保存したファイルの確認
Excelで開こうとしたときの挙動
上記のスクリプトを実行して作成されたxlsファイルを開こうとすると、
「'test.xls'のファイル形式と拡張子が一致しません。ファイルが破損しているか、安全ではない可能性があります。発行元が信頼できない場合は、このファイルを開かないでください。ファイルを開きますか?」
と確認メッセージが表示され、開いてみると、SheetシートのA1セルに「hello, world.」とデータが書き込まれています。
ファイルの構造
ただし、本当のxlsファイルなら65,536行・IV列まで存在しないはずですが、1,048,576行・XFD列まであります。
また拡張子を.zipにしてから解凍してみると、xlsxファイルと同じファイル構造になっていることを確認できます。
そもそも本当のxlsファイルならば、解凍しようとするとエラーが発生します。
つまり、OpenPyXLで拡張子を.xlsで保存したところで、中身としては当然xlsxファイルと同じ形式で、ただ単に拡張子が.xlsになっているだけのファイルになるということです。
開こうとしたときに表示された「ファイル形式と拡張子が一致しません。」メッセージのとおりです。
最終更新日時:2020-06-10 03:47
Home » Python » OpenPyXLの使い方 » OpenPyXLで拡張子に.xlsを指定して保存すると?