上面代码报错ValueError: 交易码 is not a valid coordinate or range
时间: 2024-01-25 13:02:37 浏览: 193
非常抱歉,我之前的回答有误。在openpyxl中,无法直接通过列名来访问单元格。可以使用`iter_rows`方法来遍历每一行,并使用索引或列号来访问特定列的数据。
以下是使用openpyxl库读取指定sheet页数据的示例代码:
```python
from openpyxl import load_workbook
# 打开Excel文件
workbook = load_workbook(file_path)
# 选择指定的sheet页
sheet = workbook[sheet_name]
# 获取指定列的列号或索引
column_index = None
for column in sheet.iter_cols(min_row=1, max_row=1, values_only=True):
for index, value in enumerate(column, start=1):
if value == '交易码':
column_index = index
break
# 遍历每一行,并获取指定列的数据
if column_index:
for row in sheet.iter_rows(min_row=2, values_only=True):
cell_value = row[column_index - 1] # 列号从1开始,而索引从0开始
print(cell_value)
else:
print("指定的列名不存在")
# 关闭Excel文件
workbook.close()
```
在上述代码中,我们首先使用openpyxl的load_workbook函数打开Excel文件,并选择指定的sheet页。然后,我们使用iter_cols方法遍历第一行的所有列,并查找包含"交易码"的列,以获取其列号或索引。接下来,我们使用iter_rows方法遍历每一行,并使用row[column_index - 1]来访问指定列的数据。
请将示例代码中的file_path替换为你实际使用的Excel文件路径,同时将sheet_name替换为你要读取的sheet页名称。
再次抱歉给你带来的困扰,希望以上代码能够正确读取指定sheet页的数据。如果还有其他问题,请随时提问。
阅读全文