しょっちゅう忘れることを書いておく。
![]() |
66 |
155 views
# coding: UTF-8
def get_row(cell):
"""
エクセルのセル名を受け取り、行番号だけ抽出する
:param cell: A5,B6などのセル番号
:return: A、Bなどの列番号
"""
row = int(''.join(filter(str.isdigit, cell))) # 行番号を抽出
return row
def get_col(cell):
"""
エクセルのセル名を受け取り、列番号だけ抽出する
:param cel: A5,B6などのセル番号
:return: 5,6などの列番号
"""
col = ''.join(filter(str.isalpha, cell)) # 列文字を抽出
return col
def next_excel_column(col_str):
"""
エクセルの列番号(文字列)を次の列番号に変換する関数。
'A', 'B', ..., 'Z', 'AA', 'AB', ..., 'AZ', 'BA', ..., 'ZZ', 'AAA' といった形式のエクセルの列番号を
入力として受け取り、その次の列番号を計算し返します。
Parameters:
col_str (str): エクセルの列番号(例: 'A', 'B', ..., 'Z', 'AA', ..., 'AZ')
Returns:
str: 次のエクセルの列番号に対応する文字列。
Examples:
>>> next_excel_column('A')
'B'
>>> next_excel_column('Z')
'AA'
>>> next_excel_column('AZ')
'BA'
>>> next_excel_column('ZZ')
'AAA'
"""
# 列名(例: "A", "B", ..., "Z", "AA")を数値に変換する処理
def column_to_number(col_str):
col_num = 0
for char in col_str:
col_num = col_num * 26 + (ord(char.upper()) - ord('A') + 1)
return col_num
# 数値をエクセル列名(例: 1 -> "A", 27 -> "AA")に変換する処理
def number_to_column(col_num):
result = []
while col_num > 0:
col_num -= 1 # 1ベースから0ベースに調整
result.append(chr(col_num % 26 + ord('A')))
col_num //= 26
return ''.join(result[::-1])
# 列名を数値に変換して、1を加えて次の列番号に
next_col_num = column_to_number(col_str) + 1
# 数値を再び列名に変換して返す
return number_to_column(next_col_num)
if __name__ == '__main__':
cel ="B5"
ret = filter(str.isdigit, cell)
for d in ret:
print(d)
row = get_row(cell)
col = get_col(cell)
print(f"{row},{col}")
next_col = next_excel_column('Z')
print(next_col)
Page 59 of 69.
すぺぺぺ
本サイトの作成者。
プログラムは趣味と勉強を兼ねて、のんびり本サイトを作っています。
フレームワークはdjango。
ChatGPTで自動プログラム作成に取り組み中。
https://www.osumoi-stdio.com/novel/