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

2024-04-25 10:03:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用现有工作簿中的数据创建新工作簿。现有工作簿非常大,因此我将其作为只读工作簿加载。 因此,我需要遍历行,但我似乎不知道如何做到这一点,并将数据放入新工作簿。 除此之外,数据来自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

我不断收到弃用警告,程序运行速度比我认为的要慢得多。 当我简单地做一个print语句来查看单元格值时,它在几分钟内遍历了所有40000行。 我当前的代码需要几个小时,甚至更长。你知道吗


Tags: 数据inforvaluecountercellcolumncol
1条回答
网友
1楼 · 发布于 2024-04-25 10:03:05

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

相关问题 更多 >