🔢

openpyxl でKeyError: 'Worksheet {cell} does not exist. が出たので、解決してきた

2024/01/09に公開

1分で読めます

背景

PythonでExcel操作をしたい。openpyxlライブラリでエクセルファイルを読み込んで、セル名を指定したのに、KeyError: 'Worksheet {cell} does not exist. というエラーが出る。

以下、実行スクリプトです。

import openpyxl

from openpyxl.workbook.workbook import Workbook


def load_workbook(path: str) -> Workbook:
    return openpyxl.load_workbook(path)


wb = load_workbook("パスを指定する")
print(wb["A1"])

print(wb)を実行すると、Workbookオブジェクトは生成されているので、セルの取得でエラーになっていそうです。
<openpyxl.workbook.workbook.Workbook object at 0x103b95690>

解決策

return wb.activeで、アクティブなワークブックを取得する必要があったようです。

openpyxlの公式ドキュメントにも、同じような記載がありました。
https://openpyxl.readthedocs.io/en/stable/

以下、修正スクリプトです。

import openpyxl

from openpyxl.workbook.workbook import Workbook


def load_workbook(path: str) -> Workbook:
    wb = openpyxl.load_workbook(path)
    return wb.active


wb = load_workbook("パスを指定する")
print(wb["A1"])

あと書き

今回、エラーが起こった背景として、同じようにWordファイルをPythonで操作する際はpython-docxというライブラリを使いますが、、python-docx二はwb.activeのようなスクリプトは必要なかったために、少し迷った次第です。
https://python-docx.readthedocs.io/en/latest/

めちゃめちゃ難易度の低いエラーですが、もし同じようなエラーになった方がいればぜひご参考にしていただけますと幸いです。

最後に宣伝です。
Xも動かしておりますので、ぜひフォローください!
https://twitter.com/enterrocken

Discussion