请帮助openpyxl通过heade循环列值

时间:2019-06-30 19:31:50

标签: python loops cell rows openpyxl

我在左侧有一个带随机日期的列,以及一个带日期的标题行(日历)。 我试图循环列值,并为每个值查找标题值,一旦在标题中找到值A,我想打印在标题中找到的值A的坐标。             01.01.2019 | 02.01.2019 | 03.01.2019 | .... | 02.02.2019 | 01.01.2019 02.02.2019 2019年2月15日

代码应执行的操作,应选择01.01.2019(左列)并循环浏览标题日期。一旦找到01.01.2019的通讯者,应打印标题坐标(B1)。依此类推,剩余日期为02.02和15.02。

非常感谢您!

我尝试使用ws.rows和ws.iter_cols进行循环,但由于某些原因似乎不起作用。

**for row in ws.rows:
 if row[1].value == "28.06.2019":
      print("Found it vertically, value is:", row[1].value)
      #for cell in row:
      #    print(cell.value, end=" ")
      print("Vertical Value:", row[1].value, "Coordinates:", row[1].coordinate)
      target.append(row[1].coordinate)
      break

print(“ TARGET1:”,目标) 对于ws.iter_cols(min_row = 1,max_col = 30,max_row = 2)中的col:      对于col中的单元格:           如果cell.value ==“ 28.06.2019”:                print(“ Horizo​​ntal Value:”,cell.value,“ Coordinates:”,cell.coordinate)                target.append(cell.coordinate)           其他:                休息**

        01.01.2019 | 02.01.2019 | 03.01.2019 |.... | 02.02.2019 |

2019年1月1日 02.02.2019 2019年2月15日

代码应执行的操作,应选择01.01.2019(左列)并循环浏览标题日期。一旦找到01.01.2019的通讯者,应打印标题坐标(B1)。依此类推,剩余日期为02.02和15.02。

非常感谢您!

1 个答案:

答案 0 :(得分:1)

我建议您构建标题的字典并使用此查找。像下面这样的东西应该有所帮助。

header = {c.value:c.coordinate for c in ws[1]}
for cell in ws['A']:
    print("{0} maps to {1}".format(cell.coordinate, header[cell.value])