OpenPyXL⑧ (セル番地の変換)

セル番地の変換

openpyxl.utilsクラス の関数を使うと、列番号から列の文字 を取得したり、列の文字から列番号 を取得をしたりすることが行えます。

  • openpyxl.utils.get_column_letter(列番号)
    列番号 に対応する 列文字 を返す。
  • openpyxl.utils.column_index_from_string(列文字列)
    列文字 に対応する 列番号 を返す。

サンプルコード

セル番地の変換を行うサンプルコードは以下の通りです。

まずは、数値を列文字 に、列文字を数値 に変換してみます。

[Google Colaboratory]

1
2
3
4
5
import openpyxl
from openpyxl.utils import get_column_letter, column_index_from_string

print('列の文字', get_column_letter(1)) # 列番号から列の文字を取得
print('列番号', column_index_from_string('A')) # 列の文字から列番号を取得

[実行結果]

次に、Excelを読み込んで 最終列を数字 で取得し、その数字を 列文字 に変換します。

[Google Colaboratory]

1
2
3
4
5
# 集計表の最終列を列文字で取得する
book = openpyxl.load_workbook('テスト.xlsx') # Excelブックを取得
sheet = book['Sheet1'] # Sheet1を取得
print('最終列の列文字->',
get_column_letter(sheet.max_column)) # 最終列の列文字を取得

読み込むエクセルファイルは下記になります。

[テスト.xlsx]

[実行結果]

最終列の列文字 を取得することができました。