Openpyxl: Wie kopieren Sie eine Zeile nach der überprüfung, ob eine Zelle bestimmten Wert enthält

Ich habe ein Arbeitsblatt, das jede Woche aktualisiert mit tausenden von Zeilen und würde übertragen müssen Zeilen aus diesem Arbeitsblatt nach der Filterung. Ich bin mit dem aktuellen code zu finden, der Zellen die den Wert ich brauche, und übertragen Sie dann die gesamte Zeile auf ein anderes Blatt, aber nach dem speichern der Datei, bekomme ich die "IndexError: list index out of range" exception.

Den code, den ich verwenden, ist wie folgt:

import openpyxl

wb1 = openpyxl.load_workbook('file1.xlsx')
wb2 = openpyxl.load_workbook('file2.xlsx')

ws1 = wb1.active
ws2 = wb2.active

for row in ws1.iter_rows():
    for cell in row:
        if cell.value == 'TrueValue':
            n = 'A' + str(cell.row) + ':' + ('GH' + str(cell.row))
            for row2 in ws1.iter_rows(n):
                ws2.append(row2)

wb2.save("file2.xlsx")

Den ursprünglichen code, den ich verwendet, verwendet, um die Arbeit ist unten und muss geändert werden, wegen der großen Dateien, die bewirkt, dass MS Excel nicht zu öffnen (über 40mb).

n = 'A3' + ':' + ('GH'+ str(ws1.max_row))
for row in ws1.iter_rows(n):
    ws2.append(row)

Dank.

Schreibe einen Kommentar