openpyxl utils 模組

小吉猫發表於2024-05-22

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()

相關文章