Помогите, пожалуйста, openpyxl зациклить значения столбца через заголовок - PullRequest
0 голосов
/ 30 июня 2019

У меня есть столбец слева со случайными датами и строка заголовка с датами (календарь). Я пытаюсь зациклить значения столбца и для каждого значения искать в значениях заголовка, как только значение A найдено в заголовке, я хотел бы вывести координаты значения A, найденного в заголовке. 01.01.2019 | 02.01.2019 | 03.01.2019 | .... | 02.02.2019 | 01.01.2019 02.02.2019 15.02.2019

Что должен делать код, он должен выбрать 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:", target) для col в ws.iter_cols (min_row = 1, max_col = 30, max_row = 2): для клетки в цв: if cell.value == "28.06.2019": print («Значение по горизонтали:», cell.value, «Координаты:», cell.coordinate) target.append (cell.coordinate) еще: перерыв **

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

01.01.2019 02.02.2019 15.02.2019

Что должен делать код, он должен выбрать 01.01.2019 (столбец слева) и просмотреть циклы по датам. Найдя 01.01.2019 корреспондента, следует напечатать координату заголовка (B1). И так далее для оставшихся дат 02.02 и 15.02.

Большое спасибо!

1 Ответ

1 голос
/ 01 июля 2019

Я предлагаю вам создать словарь заголовка и использовать этот поиск. Должно помочь что-то вроде следующего.

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])
...