首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >python可以在没有中间保存步骤的情况下向excel添加、运行和删除VBA宏吗?

python可以在没有中间保存步骤的情况下向excel添加、运行和删除VBA宏吗?
EN

Stack Overflow用户
提问于 2018-04-17 14:07:55
回答 1查看 2.8K关注 0票数 5

我有一个长期运行的python管道,它生成一个pandas dataframe。简而言之,我想:

  1. 在excel
  2. 中显示pandas数据帧添加和运行VBA宏
  3. 删除VBA宏并将(新格式化的)输出保存为.xslx

挑战在于,如果没有中间的save-as-**xlsm**-file步骤,我就不知道如何执行此,这显然是在向.xlsx文件添加VBA宏时所必需的。由于这是低效的,我想摆脱这个中间步骤。

代码如下:

1.在excel中显示熊猫数据帧:

with pd.ExcelWriter('output.xlsx') as writer:
     df_results.to_excel(writer, index = False, sheet_name = "Sheet1")
     #...see below

2A。添加宏并分配.xlsm-,以便编写器可以保存宏文件名

     #... 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步骤的情况下&用更短的代码来做到这一点呢?

如何使用python?在excel上下文中添加、运行和删除VBA宏,而无需中间保存步骤

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-13 06:50:23

是,创建实例,使用内置的VBA代码导入,运行宏,另存为xlsx以删除宏。

xl = win32com.client.Dispatch("Excel.Application")
xl.Workbooks.Add
wb = xl.ActiveWorkbook
wb.VBProject.VBComponents.Import "Full Path\VBA_script.bin"
xl.Application.Run("Module1.Main")
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
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49870991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档