near0325 2022-04-01 20:17 采纳率: 66.7%
浏览 9

不同的方法创建一个多sheet的excel文档的执行时间相差挺大,求原因。

问题遇到的现象和发生背景

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的库,但是这个创建文档和后面存储数据的时间都很长。该如何改善这个问题呢?

  • 写回答

1条回答 默认 最新

  • 陈年椰子 2022-04-01 20:28
    关注

    xlwt约耗时0.01s,xlwings耗时1.8s
    原因应该是 xlwt 直接建文件, xlwings 是要excel app , 用excel的api来建立文件。
    除了这两个, 还可以试试 openpyxl , 这个只能建xlsx 文件。

    评论

报告相同问题?

问题事件

  • 创建了问题 4月1日

悬赏问题

  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测