当文件位于不同位置时,通过VBA在Excel文件中运行Python

时间:2017-06-26 09:34:55

标签: python excel vba xlwings

通过使用xlwingshttp://docs.xlwings.org/en/v0.7.2/vba.html)提供的功能,我可以轻松地在xls中运行python例程,如果我要调用的文件没有&中的任何依赖项#34;上部"项目内部的直接程度,一切都很好。如果没有,它不起作用。

myProject
    |__ Exposures
        |__ XLS_1.xlsx
        |__ exec_file_for_XLS_1.py
    |__ Routines
        |__ main_routines.py

    XLS_2.xlsx
    exec_file_for_XLS_2.py

# for explanatory purposes
exec_file_for_XLS_1.py = exec_file_for_XLS_2.py
XLS_1.xlsx = XLS_2.xlsx

inside exec_file_for_XLS_1 calls:
    import Routines.main_routines

所以,如果我从exec_file_for_XLS_1.py致电XLS_1.xlsx,我会收到错误,因为xlwings模块无法在entrie项目中搜索,而如果我调用exec_file_for_XLS2.py来自XLS_2.xlsx它起作用,因为它搜索" lower"中的文件夹。项目的水平

我的问题是:除了将excel(及其.py执行文件)移到顶层(在我的情况下不可行),我该怎么做才能解决这个问题?

做更新的版本(我的0.7.2}解决了这个问题吗?

1 个答案:

答案 0 :(得分:0)

您可以在VBA设置中将python无法覆盖的目录添加到PYTHONPATH,请参阅http://docs.xlwings.org/en/stable/vba.html#settings