utils 模組說明
openpyxl.utils 模組提供了一些有用的工具來處理 Excel 表格中的行號和列號的轉換。
column_index_from_string()
column_index_from_string(): 用於將 Excel 列字母轉換為列索引。
column_index_from_string(col_str):
col_str (str): 列字母字串,例如 'A', 'B', ..., 'Z', 'AA', 等等。這個引數是大小寫不敏感的。將一個 Excel 的列字母(例如 "A", "B", ..., "Z", "AA", 等等)轉換為對應的整數型列索引(從 1 開始計數)。
返回值: 返回值是一個整數型別,表示列的索引,從 1 開始計數。
from openpyxl import Workbook
from openpyxl.utils.cell import column_index_from_string, get_column_letter
# 建立一個新的Excel工作簿
wb = Workbook()
# 獲取第一個工作表
worksheet = wb.active
# 將列字母轉換為列索引
index_A = column_index_from_string('A') # 返回 1
index_B = column_index_from_string('B') # 返回 2
index_Z = column_index_from_string('Z') # 返回 26
index_AA = column_index_from_string('AA') # 返回 27
index_AB = column_index_from_string('AB') # 返回 28
print(index_A) # 輸出 1
print(index_B) # 輸出 2
print(index_Z) # 輸出 26
print(index_AA) # 輸出 27
print(index_AB) # 輸出 28
# 儲存工作簿到指定的檔名
wb.save("execl_test.xlsx")
# 關閉工作簿
wb.close()
get_column_letter()
get_column_letter(): 用於將 Excel 列索引轉換為列字母。
get_column_letter(col_idx): 將一個 Excel 的列索引(從 1 開始計數)轉換為對應的列字母(例如 "A", "B", "Z", "AA", 等等)。
col_idx (int): 列索引,必須是一個大於或等於 1 的整數。
返回值: 返回值是一個字串型別,表示列的字母。
from openpyxl import Workbook
from openpyxl.utils.cell import column_index_from_string, get_column_letter
# 建立一個新的Excel工作簿
wb = Workbook()
# 獲取第一個工作表
worksheet = wb.active
# 將列索引轉換為列字母
letter_1 = get_column_letter(1) # 返回 'A'
letter_2 = get_column_letter(2) # 返回 'B'
letter_26 = get_column_letter(26) # 返回 'Z'
letter_27 = get_column_letter(27) # 返回 'AA'
letter_28 = get_column_letter(28) # 返回 'AB'
print(letter_1) # 輸出 'A'
print(letter_2) # 輸出 'B'
print(letter_26) # 輸出 'Z'
print(letter_27) # 輸出 'AA'
print(letter_28) # 輸出 'AB'
# 儲存工作簿到指定的檔名
wb.save("execl_test.xlsx")
# 關閉工作簿
wb.close()
coordinate_from_string()
coordinate_from_string(cell_str): 用於將一個 Excel 的單元格地址(例如 "A1", "B2" 等)拆分為列字母和行編號。
coordinate_from_string(cell_str): 將一個 Excel 的單元格地址字串(例如 "A1", "B2", "AA10" 等)解析為對應的列字母和行編號。
cell_str (str): 單元格地址字串,例如 "A1", "B2", "AA10" 等。
返回值: 返回值是一個元組 (col_str, row_idx)。
col_str 是表示列字母的字串。
row_idx 是表示行編號的整數。
from openpyxl import Workbook
from openpyxl.utils.cell import coordinate_from_string
# 建立一個新的Excel工作簿
wb = Workbook()
# 獲取第一個工作表
worksheet = wb.active
# 將單元格地址解析為列字母和行編號
col_A, row_1 = coordinate_from_string('A1') # 返回 ('A', 1)
col_B, row_2 = coordinate_from_string('B2') # 返回 ('B', 2)
col_AA, row_10 = coordinate_from_string('AA10') # 返回 ('AA', 10)
print(col_A, row_1) # 輸出 ('A', 1)
print(col_B, row_2) # 輸出 ('B', 2)
print(col_AA, row_10) # 輸出 ('AA', 10)
# 儲存工作簿到指定的檔名
wb.save("execl_test.xlsx")
# 關閉工作簿
wb.close()
range_boundaries()
range_boundaries():用於解析 Excel 的單元格範圍字串,並返回代表該範圍的起始和結束行和列的邊界。
range_boundaries(range_string):將一個 Excel 的單元格範圍字串(例如 "A1:D4", "B2:E5" 等)解析為對應的起始列、起始行、結束列和結束行的邊界值。
range_string (str): 單元格範圍字串,例如 "A1:D4", "B2:E5", 等。
返回值:返回值是一個元組 (min_col, min_row, max_col, max_row)
min_col 是起始列的索引(整數型別)。
min_row 是起始行的索引(整數型別)。
max_col 是結束列的索引(整數型別)。
max_row 是結束行的索引(整數型別)。
from openpyxl import Workbook
from openpyxl.utils.cell import range_boundaries
# 建立一個新的Excel工作簿
wb = Workbook()
# 獲取第一個工作表
worksheet = wb.active
# 解析單元格範圍字串
range1 = range_boundaries('A1:D4') # 返回 (1, 1, 4, 4)
range2 = range_boundaries('B2:E5') # 返回 (2, 2, 5, 5)
range3 = range_boundaries('AA10:AC20') # 返回 (27, 10, 29, 20)
print(range1) # 輸出 (1, 1, 4, 4)
print(range2) # 輸出 (2, 2, 5, 5)
print(range3) # 輸出 (27, 10, 29, 20)
# 儲存工作簿到指定的檔名
wb.save("execl_test.xlsx")
# 關閉工作簿
wb.close()