gpt4 book ai didi

Python-excel : writing to multiple cells takes time

转载 作者:太空宇宙 更新时间:2023-11-03 14:34:05 24 4
gpt4 key购买 nike

我正在使用 win32com.client 将数据写入 excel 文件。这会花费太多时间(下面的代码模拟了我要用来更新 excel 的数据量,大约需要 2 秒)。

有没有办法在一次调用中更新多个单元格(具有不同的值)而不是一个一个地填充它们?或者可能使用更有效的不同方法?

我使用的是 python 2.7 和 office 2010。

代码如下:

from win32com.client import Dispatch

xlsApp = Dispatch('Excel.Application')
xlsApp.Workbooks.Add()
xlsApp.Visible = True
workSheet = xlsApp.Worksheets(1)

for i in range(300):
for j in range(20):
workSheet.Cells(i+1,j+1).Value = (i+10000)*j

最佳答案

一些建议:

ScreenUpdating关闭,手动计算

尝试以下操作:

xlsApp.ScreenUpdating = False
xlsApp.Calculation = -4135 # manual
try:
#
worksheet = ...
for i in range(...):
#
finally:
xlsApp.ScreenUpdating = True
xlsApp.Calculation = -4105 # automatic

一次分配多个单元格

使用 VBA,您可以将范围的值设置为数组。一次设置多个值可能会更快:

' VBA code
ActiveSheet.Range("A1:D1").Value = Array(1, 2, 3, 4)

我从来没有用 Python 尝试过这个,我建议你试试这样的东西:

worksheet.Range("A1:D1").Value = [1, 2, 3, 4]

一种不同的方法

考虑使用 openpyxlxlwt . Openpyxls 允许您创建 .xlsx 文件而无需安装 Excel。 Xlwt 对 .xls 文件做同样的事情。

关于Python-excel : writing to multiple cells takes time,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5014261/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com