xlwings 与其他 Office 应用程序结合使用

xlwings 还可以用于在除了 Excel 之外的其他 Office 应用程序(如 Outlook、Access 等)中通过 VBA 调用 Python 函数。

注意

这是一个实验性功能,未来可能会被移除。目前,此功能仅适用于 Windows 上的 UDF(用户定义函数)。RunPython该功能目前不受支持。

如何操作

  1. 像平常一样编写您的 Python 函数,并将其导入到 Excel 中(参见用户定义函数(UDFs))。

  2. 按下Alt-F11键进入 VBA 编辑器,然后右键单击xlwings_udfsVBA 模块并选择Export File...。保存xlwings_udfs.bas文件到某个位置。

  3. 切换到其他 Office 应用程序,例如 Microsoft Access,再次点击Alt-F11进入 VBA 编辑器。右键单击 VBA 工程并选择Import File...,然后选择您在上一步导出的文件。导入后,将第一行中的应用程序名称替换为您正在使用的那个,即Microsoft AccessMicrosoft Outlook等等,这样第一行将读作:#Const App = "Microsoft Access"

  4. 现在导入独立的 xlwings VBA 模块 (xlwings.bas)。您可以在您的 xlwings 安装文件夹中找到它。要知道它的位置,请执行以下操作:

    >>> import xlwings as xw
    >>> xlwings.__path__
    

    最后按照之前的步骤进行相同操作,并将第一行中的应用程序名称替换为您正在使用的对应应用程序名称。现在您可以从 VBA 调用 Python 函数。

配置

其他 Office 应用程序将使用与您通过 Excel 功能区加载项编辑时相同的全局配置文件。如果合适,您可以使用目录配置文件(例如,可以将其放在您的 Access 或 Word 文件旁边),或者您可以硬编码 VBA 独立模块中的配置文件路径,例如在函数GetDirectoryConfigFilePath中(例如,建议在使用没有类似其他 Office 应用程序文件概念的 Outlook 时)。注意:对于没有文件概念的 Office 应用程序,您需要确保PYTHONPATH指向包含 Python 源文件的目录。有关不同配置选项的详细信息,请参阅配置.