実現したいこと
openpyxlモジュールを使用して、特定の文字列の行列番号を取得したいです。
発生している問題・分からないこと
特定の文字列の行列番号を取得するプログラムを実行中、以下のエラーが発生しました。名前の定義はif文内で”cell = c.coordinate”のようにしたつもりですが、エラーが発生してしまいます。
ちなみに、このコードは”https://qiita.com/kibo_kibo/items/5cc78d35163f949b0a77”のサイトから引用しました。
エラーメッセージ
error
1 File "c:\Users\tsuba\OneDrive\デスクトップ\test001.py", line 20, in <module> 2 print("セル番地:"+ cell) 3 ^^^^ 4NameError: name 'cell' is not defined
該当のソースコード
#必要ライブラリのインポート import openpyxl # openpyxlを使ってエクセルファイルを開く workbook = openpyxl.load_workbook("book1.xlsx") # シートを取得,シート名はSheet1 ws = workbook["Sheet1"] # target_valueが一致するセルの座標を検索 # 100行100列の中に探したい文字列があるとして設定 for r in ws.iter_rows(max_row=100, max_col=100): # 列を一つずつ探索 for c in r: # もしc.valueがtarget_valueと一致したらその行番号を返す if c.value == "Interest Income": #セル番地を指定する:M10 cell = c.coordinate #行数のみcell_nloc[1]を取得に格納 cell_row_n = openpyxl.utils.cell.coordinate_from_string(cell_nloc)[1] cell_col_m = openpyxl.utils.column_index_from_string(cell_nloc[0]) print("セル番地:"+ cell) print("セル行番号:"+ str(cell_row_n)) print("セル列番号:"+ str(cell_col_m))
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
Googleで「nameerror name is not defined python」と検索したが、今回の問題に対する解決策が見つからなかった。
補足
特になし
回答1件
あなたの回答
tips
プレビュー