使用python代码,实现对于一个excel文件,遍历读取他的所有sheet表,当sheet表为“总行”的时候,读取表头为“接收人工号”和“推送内容”("推送内容"是好多列的合并表头)的数据data, 遍历data数据 sheet《rows
时间: 2024-03-05 11:54:21 浏览: 54
如何在Python对Excel进行读取
以下是实现上述功能的Python代码:
```python
import openpyxl
# 打开Excel文件
wb = openpyxl.load_workbook('example.xlsx')
# 遍历所有sheet表
for sheetname in wb.sheetnames:
sheet = wb[sheetname]
# 判断sheet表是否为“总行”
if sheetname == "总行":
# 读取表头为“接收人工号”和“推送内容”的数据
data = []
for row in sheet.iter_rows(min_row=1, max_row=1):
row_data = []
for cell in row:
if cell.value in ["接收人工号", "推送内容"]:
row_data.append(cell.value)
data.append(row_data)
# 遍历表头为“接收人工号”的列和表头为“推送内容”的几行列数据
for row in sheet.iter_rows(min_row=2, values_only=True):
key = row[0]
value = "".join([str(cell) for cell in row[1:]])
# 处理data中的数据
for i in range(len(data)):
if data[i][0] == "接收人工号":
key_index = i
if data[i][0] == "推送内容":
value_index = i
if data[key_index][1] == key and data[value_index][1] in value:
print("匹配成功:", key, value)
```
此代码在前一个问题的基础上,新增了遍历data数据并进行匹配的功能。需要注意的是,这里默认data的第一行为表头,且“接收人工号”和“推送内容”两个表头都只会出现一次。如果实际情况不符,需要进行相应的修改。
阅读全文