从 Python 访问 Microsoft 自动化对象

2023-11-29

我有一组宏,已将其转换为 Excel 中的加载项。这些宏允许我与另一个程序进行交互,该程序具有所谓的 Microsoft 自动化对象,可以对其他程序的操作进行一些控制。例如,我在加载项中有一个筛选工具,可以筛选其他程序提供的列表以匹配 Excel 工作簿中的列表。但这很慢。我可能在另一个程序中有五万行,并且想要过滤掉与 Excel 中三千行列表不匹配的所有行。这种类型的匹配大约需要30-40分钟。我开始想知道是否有办法用 Python 来做到这一点,因为我怀疑匹配过程可以在几秒钟内完成。

Edited:

谢谢-根据查看哈蒙德的书的建议,我找到了很多资源。然而,尽管我仍在探索,但看起来其中许多都是旧的。例如,哈蒙德的书于 2000 年出版,这意味着该书在近十年前就完成了。更正 我刚刚找到了 2/2009 版本的名为 PyWin32 的包。

这应该让我开始。谢谢


您可能需要 win32com 软件包。

这是我在以下位置找到的示例:http://www.markcarter.me.uk/computing/python/excel.html其中展示了如何将 com 与 Excel 结合使用。这可能是一个好的开始。

# this example starts Excel, creates a new workbook, 
# puts some text in the first and second cell
# closes the workbook without saving the changes
# and closes Excel.  This happens really fast, so
# you may want to comment out some lines and add them
# back in one at a time ... or do the commands interactively


from win32com.client import Dispatch


xlApp = Dispatch("Excel.Application")
xlApp.Visible = 1
xlApp.Workbooks.Add()
xlApp.ActiveSheet.Cells(1,1).Value = 'Python Rules!'
xlApp.ActiveWorkbook.ActiveSheet.Cells(1,2).Value = 'Python Rules 2!'
xlApp.ActiveWorkbook.Close(SaveChanges=0) # see note 1
xlApp.Quit()
xlApp.Visible = 0 # see note 2
del xlApp

# raw_input("press Enter ...")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Python 访问 Microsoft 自动化对象 的相关文章

随机推荐