使用Openpyxl将数据从一个工作簿移动到另一个工作簿

时间:2018-08-03 15:52:36

标签: python excel openpyxl

我正在尝试使用来自现有工作簿的数据创建一个新的工作簿。现有工作簿非常大,因此我将其加载为只读工作簿。 因此,我需要遍历各行,但似乎无法弄清楚如何做到这一点并将数据获取到新工作簿中。 与此相关,数​​据来自A列,并且仅在B列中的单元格为“ IL”时才放入新工作簿中。

for row in existing_sheet.iter_rows(min_col=2, max_col=2):
    for cell in row:
        print("CHECKING IF IT IS IN IL")
        if "IL" in str(cell.value):
            currSheet.cell(row=counter, column=1).value = existing_sheet.cell(row=counter, column=41).value

我一直收到弃用警告,并且程序运行的速度比我想象的要慢得多。 当我简单地执行打印语句以查看单元格值时,它在短短几分钟内遍历了所有40,000行。 我当前的代码要花几个小时,甚至更长时间。

1 个答案:

答案 0 :(得分:0)

existing_sheet.cell(row=counter, column=41).value 这就是使一切慢下来的原因。在只读模式下,每次对iter_rows()cell()的调用都会迫使openpyxl再次解析工作表。但是您将需要有更宽的行才能获得第41个单元格row[40]

for row in ws1.iter_rows(min_col=2, max_col=41):
    if "IL" in row[2].value:
        ws2.cell(row=row[2].row, column=1).value = row[40].value