経緯
PythonでExcelファイルを処理する際、openpyxlライブラリを使って.xlsファイルを読み込もうとしたところ、以下のようなエラーが発生しました。
InvalidFileException: openpyxl does not support the old .xls file format, please use xlrd to read this file, or convert it to the more recent .xlsx file format.
このエラーメッセージをもとに原因を調べた結果、openpyxlは.xls形式の古いExcelファイルには対応していないことが分かりました。
結論:.xlsファイルを扱うにはxlrdを使う
エラーの直接的な原因は、読み込もうとしていたファイルの拡張子が.xlsだったことです。openpyxlが対応しているのは.xlsx形式のみで、.xls(Excel 97-2003形式)は非対応です。
そのため、.xlsファイルを読み込むためには、xlrdライブラリを使用する必要があります。
以下に、globで.xlsファイルを取得し、xlrdで開く例をご紹介します。
xlrdで.xlsファイルを読み込む例
import glob
import xlrd
# カレントディレクトリにある .xls ファイルを取得する(1件目を対象)
file = glob.glob('./*.xls')[0]
# .xls ファイルを開く
wb = xlrd.open_workbook(file)
このようにすれば、wbという変数に読み込んだExcelファイルが格納されます。
あとは通常どおり、ワークシートを取得してデータを処理していくことが可能です。
注意点と補足
・.xlsxファイルを読みたい場合は、openpyxlを使うのが正解です。ファイル形式に応じてライブラリを使い分けましょう。
・.xlsファイルを.xlsx形式に変換しておくという手もあります。Excelで一度開き、[名前を付けて保存]から.xlsx形式で保存すると、openpyxlでも扱えるようになります。
・xlrdは最新版(2.x系)では.xls形式のみ対応しており、.xlsxは非対応です。.xlsxも扱いたい場合は、openpyxlやpandas+openpyxlとの併用がおすすめです。
まとめ
“InvalidFileException”というエラーは、openpyxlで.xls形式のExcelファイルを開こうとした際に発生します。
この場合は、.xls形式に対応しているxlrdを使用することで解決できます。
ファイル形式によって使用するライブラリが異なる点に注意しつつ、適切な方法でExcelファイルを操作しましょう。
最後までお読みいただき、ありがとうございました。
副業から独立まで「稼げる」Webスキルを習得する(PR)
ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。
「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。
このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。
講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。
副業に特化した強み
- 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
- AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
- 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。
受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。
受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。
