xlwingsを触っていて、列番号から列のアルファベットを取得するメソッドが無く不便だったので関数を作成しました。
環境
python : 3.12.3
windows:19045.5131
コード
全体
defcolumn_number_to_name(number): """列番号をExcelのアルファベット形式に変換""" result = ""while number > 0: number, remainder = divmod(number - 1, 26) result = chr(65 + remainder) + result return result # 1 → A# 26 → Z# 27 → AA# 28 → AB
説明
divmod関数を使い、引き数をアルファベットの個数である26で割ります。
商と余りが取得できます。
ASCIIコード表ではアルファベットが65から始まっているので、chr関数を使い、余りを文字に変換します。
商が0以下になるまでループするので、アルファベット2桁でも出力できます。
ex1. 引数:1 → divmod → 商:0、余り:0 → chr(65 + 0):A → A
ex2. 引数:29 → divmod → 商:1、余り:2 → chr(65 + 2):C → 商:1 → divmod → 商:0、余り:0 → chr(65 + 0):A → AC