问题遇到的现象和发生背景
xlwt和xlwings的模块,创建一个9个sheet的excel文档,xlwt约耗时0.01s,但是xlwings耗时1.8s。
问题相关代码,请勿粘贴截图
(1)xlwt库创建excel
import xlwt
import time
sheetname=['12', '22', '32', '112', '122', '132', '212', '222', '232']
st=time.time()
path = r"C:\python tool\xlwingTest\"
filepath = path + r'test.xls'
wb1= xlwt.Workbook()
for i in range(len(sheetname)):
ws1=wb1.add_sheet(sheetname[i])
wb1.save(filepath)
et=time.time()
rt=et-st
print("run time", rt)
(2)xlwings库创建excel文档
#使用app打开
import time
import xlwings as xw
st=time.time()
app = xw.App(visible= True, add_book= False) # 程序可见,只打开不新建工作薄
app.display_alerts = False# 警告关闭
app.screen_updating = False# 屏幕更新关闭
path = r"C:\python tool\xlwingTest\"
wb = app.books.open( path + r'practice1.xlsx')
sheetname=['12', '22', '32', '112', '122', '132', '212', '222', '232']
for i in range(len(sheetname)):
ws=wb.sheets.add(sheetname[i])
wb.save( path + r'practice.xlsx') # 保存文件
wb.close()# 关闭文件
app.quit# 关闭程序
app.kill() #关闭进程
et=time.time()
rt=et-st
print("run time", rt)
运行结果及报错内容
xlwings库运行结果:
run time 1.8088304996490479
我的解答思路和尝试过的方法
因需要处理大量的excel数据,最近一直在找减少存储时间的方法,前面采用减少save操作的次数,减少了一些时间,仍然还没有达到需要的效果。
退回到最初的xlwt的库处理,速度快,但是不支持xlsx,仍然无法解决。
我想要达到的结果
我希望采用xlwings的库,但是这个创建文档和后面存储数据的时间都很长。该如何改善这个问题呢?