我需要从python脚本中调用Excel工作簿中的VBA宏.其他人为Excel工作簿提供了宏.宏从外部数据库中获取更新的值,并执行一些相当复杂的数据按摩.我需要这个按摩的结果,我真的不想在我的Python脚本中复制它,如果我可以避免它.因此,如果我可以从我的脚本中调用宏并获取按摩结果,那将会很棒.
我所知道的关于COM的一切我都是从"Win32上的Python编程"中学到的.好书,但不足以完成我的任务.我搜索过,但没有找到任何关于如何做到这一点的好例子.有没有人有任何好的例子,或者一些如何解决/调用VBA宏的骨架代码?Excel COM接口上的一般参考(书籍,Web链接等)在这里也会有所帮助.谢谢.
好,我知道了!感谢Application.Run方法的帮助.此信息,以及"Microsoft Excel Visual Basic参考":http://msdn.microsoft.com/en-us/library/aa209782( office.10).aspx - 由Hammond&Robinson在"Python编程"中推荐Win32" - 是需要的.
这是骨架代码:
import win32com.client xl=win32com.client.Dispatch("Excel.Application") xl.Workbooks.Open(Filename="",ReadOnly=1) xl.Application.Run(" ") #...access spreadsheet data... xl.Workbooks(1).Close(SaveChanges=0) xl.Application.Quit() xl=0