假设我已使用以下代码在Report WW26blueprint_with_chart_330.xlsm
对象中加载report
(此处使用print.range
来测试是否已加载工作簿):
import xl
report = xl.Workbook("Report WW26blueprint_with_chart_330.xlsm")
print report
print(report.range("A1:E50").get())
从pyvot documentation我得到了:
Pyvot是在Excel的COM API之上编写的。你总能得到 底层COM对象并自己进行COM调用
我的Excel文件包含以下宏:
Macro1
Масго2
Macro7
我可以使用python / pyvot直接从python脚本运行上述任何宏吗?
答案 0 :(得分:1)
未设法使用pyvot
,但可以使用pywin32
完成,如下所示:
import win32com.client
xl=win32com.client.Dispatch("Excel.Application")
xl.Workbooks.Open(Filename="C:\Users\florinescu_eduard\Downloads\\Report WW26blueprint_with_chart_330.xlsm",ReadOnly=1)
xl.Application.Run("Macro1")
xl.Workbooks(1).Close(SaveChanges=1)
xl.Application.Quit()
xl=0
答案 1 :(得分:1)
这对我有用:
report.xlWorkbook.Application.Run('Macro1')
答案 2 :(得分:-1)
在调试时确保xl.Application.Quit()
非常重要。除了您可能会感到困惑之外。