python执行excel宏并保存结果,python可以添加,运行和删除VBA宏,而无需中间保存步骤吗?...

我有一个长期运行的

python管道,它生成一个pandas数据帧.简而言之,我想:

>在excel中显示pandas数据帧

>添加&运行VBA宏

>删除VBA宏并将(新格式化的)输出另存为.xslx

挑战在于,如果没有中间的save-as-xlsm文件步骤,我无法弄清楚如何执行此操作,这在将.V85宏添加到.xlsx文件时显然是必需的.由于这是低效的,我想摆脱这个中间步骤.

这是代码:

1.在excel中显示pandas数据框:

with pd.ExcelWriter('output.xlsx') as writer:

df_results.to_excel(writer, index = False, sheet_name = "Sheet1")

#...see below

2A.添加宏并指定.xlsm-filename,以便writer可以保存宏

#... see above

writer.book.filename = 'output.xlsm' # Add .xlsm filename

writer.book.add_vba_project('VBA_script.bin') # This adds my macro

writer.save() # How to get rid of this step?

2B.运行宏

xl = win32com.client.Dispatch("Excel.Application") # Set up excel

xl.Workbooks.Open(Filename = 'output.xlsm') # Open .xlsm file from step 2A

xl.Application.Run("Module1.Main") # Run VBA_macro.bin

3.删除宏并保存到.xlsx

wb = xl.ActiveWorkbook

xl.DisplayAlerts = False

wb.DoNotPromptForConvert = True

wb.CheckCompatibility = False

wb.SaveAs('final_outfile.xlsx', FileFormat=51, ConflictResolution=2) # Macro disapears here

xl.Application.Quit()

del xl

xl = None

是否可以在没有中间步骤的情况下执行此操作.xlsm step&用更短的代码?

如何添加,运行&删除excel上下文中的VBA宏,而不使用python进行中间保存步骤?

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值