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