gpt4 book ai didi

python - 如何使用Pythonwin32.com加快Excel文件写入速度

转载 作者:太空宇宙 更新时间:2023-11-03 19:16:10 25 4
gpt4 key购买 nike

我正在将数据从 ascii 文件读取到数组中,并将数据写入 Excel 文件以进行进一步的后处理。总共有 337 列和 1100 行,这使得 xlsx 中有 370700 个单元格。

写入 Excel 数据文件需要很长时间 - 在 16 GB 计算机上大约需要 25-35 分钟。

还有其他方法可以更有效地将数据写入Excel文件吗?

如有任何帮助,我们将不胜感激。

import numpy as np 
import win32com.client as win32
import matplotlib.pyplot as plt
from win32com import client from time
clock, time start_time = clock()

itr = int(raw_input('Enter number of iteration = '))
f1 =open("Case_AT-6_WF_fl2.gid","r")

s2 = f1.read()
a = s2.split()

count=0 for col in open("Case_AT-6_WF_fl2.gid",'r'):
count = count+1 column = int(len(col.split()))
sm = int(itr * column)

digit = map(float,(a[(len(a)-sm):l
a[(column+7):(column*2+7)]

# preparing 2D matrix dig = np.array(digit) dig1 =(dig.reshape

### *******Plotting
## print name

for i in range(len(name)):
print i,"=",name[i]

plot = int(raw_input("\nEnter variable number for plot =" ))

# writing Excel file*******************************************

print('file printing option: 1 = Yes 2= No') q = int(raw_input(
printing option = "))

if q==1 :
excel = win32.gencache.EnsureDispatch('Excel.Application')
excel.Visible = False
wb = excel.Workbooks.Add()
ws=wb.Sheets(1)
ws.Name = "MyData"
ws.Activate
for kk in range(len(name)):
ws.Cells(2,kk+1).Value = name[kk]
ws.Cells(3,kk+1).Value = unit[kk]
m = 0
k =0
for j in range(itr):
for k in range(column):
ws.Cells(j+5,k+1).Value=dig1[j][k]
m = m+1
print '',m
print clock() - start_time, "seconds"

wb.SaveAs('C:\\Documents andSettings\\sd47086\\Desktop\\test\\MyWorkbook3.xlsx')
excel.Application.Quit()

最佳答案

分配范围通常比单独设置每个单元格要快得多。你只需要确保 python 序列与范围的大小匹配,例如 ws.Range('A1:B10000').Value = ('a','b') * 10000

关于python - 如何使用Pythonwin32.com加快Excel文件写入速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11243955/

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