как свести excel таблицы, openpyxl, python
Суть задачи. Есть две xlsx таблицы. В таблице, из которой требуется взять данные, есть 2 интересующих колонки.
В том документе, что нужно заполнить, идет нумерация объектов по порядку (100,101,102...)
. Условно они находятся в столбце A.
В документе, из которого нужно забрать данные, есть те же самые номера, но в разнобой по строкам и формата
(..... ERD№100....,
..... ERD№101....,
..... ERD№102....,)
условно эти значения находятся в столбце B.
В столбцах C и D есть данные, которые мне необходимо переместить в первую таблицу в столбцы I и J.
И так найти все соответствия и заполнить таблицу
Вот пример кода, который у меня получился, подскажите в какую сторону копать, возможно другую библиотеку проще использовать, в теории казалось что ничего сложного тут нет, но оказалось все не так.
import openpyxl
import re
wb1 = openpyxl.load_workbook('1.xlsx')
wb2 = openpyxl.load_workbook('2.xlsx')
ws1 = wb1.active
ws2 = wb2.active
for row in ws1.iter_rows(min_row=1, values_only=True):
value = re.match(r'ERD№(\d+)', row[1]) # находим номер
if value: # если номер найден
num = value.group(1) # извлекаем значение номера
for row2 in ws2.iter_rows(min_row=2, values_only=True): # ищем соответствующую строку во второй таблице
if row2[0] == num: # если номер СЗО совпадает
row2[8] = row[2] # переносим значение столбца 'C' первого файла в столбец 'I' второй таблицы
row2[9] = row[3] # переносим значение столбца 'D' первого файла в Столбец 'J' второй таблицы
wb2.save('12.xlsx')
Источник: Stack Overflow на русском