xlwings与其他Office应用#
除了Excel,从Office的其他应用(如Outlook, Access等)中,也可以在VBA中通过xlwings调用Python函数。
备注
This is an experimental feature and may be removed in the future.
Currently, this functionality is only available on Windows for UDFs. The RunPython
functionality
is currently not supported.
如何使用#
通常,先写好Python函数并导入到Excel中(参考 User Defined Functions (UDFs))。
按
Alt-F11
组合键进入VBA编辑器,在VBA模块xlwings_udfs
上点击右键,并选择Export File(导出文件)...
。把xlwings_udfs.bas
文件存到某个位置。切换到其他的Office应用,比如微软的Access,并再通过
Alt-F11
组合键进入VBA编辑器。 在VBA Project区域点击右键、选择Import File(导入文件)...
, 然后选择上面步骤中导出的文件。 导入之后,在代码的第一行中把原代码的Microsoft Excel
替换成现在的应用名称,如Microsoft Access
或Microsoft Outlook
。替换好之后,代码的第一行显示为:#Const App = "Microsoft Access"
现在导入独立的xlwings VBA模块(
xlwings.bas
)。这个模块中xlwings安装目录下。可以通过下列命令找出这个目录:>>> import xlwings as xw >>> xlwings.__path__
最后和上面步骤一样,把代码第一行的应用名称修改为正在使用的应用名称。 现在就可以从VBA中调用(导入的)Python函数了。
配置#
其他Office应用同样使用Excel功能区加载项设置过的全局配置。如果需要,你可以用目录级的配置文件(例如,可以放在Access或Word文件的相同目录里),也可以把路径直接写入VBA独立模块的配置文件中(例如,建议在使用Outlook这样做,因为它不像其他office应用,它的文件概念和其他应用不一样)。注意: 对于没有文件概念的Office应用,需要确认 PYTHONPATH
指向包含Pyhon源文件的目录。关于不同配置的细节,参考 Config 。