如何加快 excel 电子表格的创建。目前它的单元格与 openpyxl

How to speed up excel spreadsheet creation. currently its cell by cell with openpyxl

我需要使用 openpyxl 加快 Excel spreadsheet 的生成过程。 如果可能的话,我想继续使用 openpyxl。

目前我的数据数组 ~3x4500 一次一个地放入 sheet 单元格。

 for n in range(0,len(headers)):
        worksheet.cell(row=1, column=worksheet.max_column + 1).value = headers[n]
        for i in range(0,len(dataarraylist[n])):
            worksheet.cell(row=2+i, column=worksheet.max_column).value = dataarraylist[n][i]

由于某种原因,开始需要 22 秒,然后随着下一个数组的出现,时间要求会显着增加。 所以它是 20 多岁,然后是 40 多岁、60 多岁、90 多岁等等。 有没有办法用更少的时间在 excel 中放入整列甚至这样的 3x4500 数组?

抱歉,如果这个问题感觉很愚蠢,我是新来的更大的传播sheets,找不到任何与使用 openpyxl 的 Excel 的批量粘贴相关的内容。

编辑:

将其切换为追加(如下所示)我失去了一点控制权,但我获得了足够的速度,现在对我来说已经足够了。

我修改了代码:

def write_asset_position_data_in_spreadsheet(dataarraylist):
    t=time.time()
    headers = ['ID','Name','Position']
    path=str(pathlib.Path().absolute())
    wb = load_workbook(path+"/Aalizer.xlsx")
    worksheet = wb.active
    for i in range(0,3):
        worksheet.append([headers[i]]+dataarraylist[i])
    print('Extracted',len(dataarraylist)*len(dataarraylist[0]),"new entries\nThis took",time.time()-t,"seconds")
    worksheet.title = "Analizer"
    wb.save(path+"/Analizer.xlsx")

这导致以下速度结果

当然可以。这个时间要求也随着越来越多的数据而扩展,但现在这已经足够了。

此致

以前做过,这里没有,但是根据 RealPython:

from openpyxl import Workbook


workbook = Workbook()
sheet = workbook.active

rows = [
    ["Product", "Online", "Store"],
    [1, 30, 45],
    [2, 40, 30],
    [3, 40, 25],
    [4, 50, 30],
    ]

for row in rows:
    sheet.append(row)

希望比分别处理每个单元格更快一些 - 而且您的代码绝对更简洁。