1

假设我已经使用以下代码加载Report WW26blueprint_with_chart_330.xlsm 了对象(此处用于测试工作簿是否已加载):reportprint.range

import xl
report = xl.Workbook("Report WW26blueprint_with_chart_330.xlsm")
print report
print(report.range("A1:E50").get())

pyvot 文档中我得到:

Pyvot 是在 Excel 的 COM API 之上编写的。您始终可以获取底层 COM 对象并自己进行 COM 调用

我的 Excel 文件具有以下宏:

Macro1 
Масго2 
Macro7  

我可以使用 python/pyvot 直接从 python 脚本运行上述任何宏吗?

4

3 回答 3

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
于 2013-10-29T12:53:25.737 回答
1

这为我做到了:

report.xlWorkbook.Application.Run('Macro1')
于 2016-02-16T17:07:23.250 回答
-1

xl.Application.Quit()在调试时确保这一点非常重要。除了你可能会感到困惑。

于 2019-03-26T14:16:03.087 回答