You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Openpyxl按表名和列名访问Excel表格并遍历列

使用Openpyxl通过表名和列名遍历Excel列数据

要实现通过表名和列名访问数据,核心是先明确Excel表格的单元格范围和列名-列位置映射,再针对性遍历。以下是具体实现方案:

步骤说明

  1. 获取表格的单元格区域:通过Table对象的ref属性拿到表格的完整单元格范围(比如A1:D10),再用工作表的range()方法获取该区域的所有单元格。
  2. 建立列名与列索引的映射:提取表格的表头行,把每个列名对应到它在表格中的列位置(索引)。
  3. 遍历目标列的行数据:跳过表头行,遍历表格的每一行,通过列索引提取对应列的单元格值。

完整代码示例

import openpyxl as pyxl

# 加载Excel文件,仅读取数据
input_excel_file = pyxl.load_workbook(path_backup_excel_file, data_only=True)
# 定位到目标工作表
sheet_panels_to_run = input_excel_file['Panels to Run']

# 获取指定表格对象
request_table = sheet_panels_to_run.tables['RequestTable']
# 获取表格对应的单元格区域
table_range = sheet_panels_to_run[request_table.ref]

# 提取表头行,建立列名到列索引的映射
header_cells = next(table_range.iter_rows(min_row=1, max_row=1, values_only=True))
column_name_to_idx = {name: idx for idx, name in enumerate(header_cells)}

# 目标列名
target_column = "Panel Name"
# 获取目标列的索引
target_col_idx = column_name_to_idx[target_column]

# 遍历表格数据行(跳过表头)
for row in table_range.iter_rows(min_row=2, values_only=True):
    # 提取目标列的单元格值
    cell_value = row[target_col_idx]
    print(cell_value)

关键代码解释

  • request_table.ref:返回表格的完整单元格范围字符串(比如A1:D10),通过sheet[request_table.ref]可直接获取该区域的所有单元格对象。
  • iter_rows(values_only=True):直接返回每行的单元格值组成的元组,无需手动处理Cell对象,简化代码。
  • column_name_to_idx字典:将表头的列名和对应的列索引绑定,后续通过列名就能快速定位列位置,无需硬编码坐标。

内容的提问来源于stack exchange,提问作者Hibbert

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 11:02:39