как свести excel таблицы, openpyxl, python

Рейтинг: 3Ответов: 0Опубликовано: 13.06.2023

Суть задачи. Есть две 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')

Ответы

Ответов пока нет.