如何在表格位置变动时仍读取并显示C3:C6区域的值?
如何在表格位置变动时读取指定内容区间的C列值
核心思路是通过内容定位行号,而非硬编码单元格位置,这样即使表格行位置变动,只要x1和x4的内容存在,就能准确读取对应C列区间的值。
解决方案代码
from openpyxl import load_workbook wb_load = load_workbook("HighSchool.xlsx") sheet_wb = wb_load["Sheet1"] x1_row = None x4_row = None # 遍历单元格,定位x1和x4所在行 for row in sheet_wb.iter_rows(): for cell in row: if cell.value == "x1": x1_row = cell.row elif cell.value == "x4": x4_row = cell.row # 找到目标行号后提前终止循环,提升效率 if x1_row and x4_row: break # 读取并输出C列对应区间的值 if x1_row and x4_row: print("C列x1到x4区间的值:") # 仅遍历C列(第3列)的指定行范围 for cell in sheet_wb.iter_rows(min_row=x1_row, max_row=x4_row, min_col=3, max_col=3): print(cell[0].value) else: print("未找到x1或x4,请检查表格内容")
关键说明
- 直接获取行号:使用
cell.row代替解析坐标字符串,更简洁可靠,无需处理类似"C3"这样的字符串拆分。 - 精准遍历区间:通过
iter_rows的min_row/max_row/min_col/max_col参数,只读取需要的C列区间,避免遍历整个表格。 - 提前终止循环:找到x1和x4的行号后立即退出循环,减少不必要的计算。
- 异常处理:增加判断逻辑,防止因找不到目标内容导致后续代码报错。
内容的提问来源于stack exchange,提问作者Cebuc Alexandru Bogdan
相关产品推荐
相关产品推荐

