我只想将excel保留为UI并允许用户从电子表格中调用python而不是VBA。另外python文件需要打包成一个.exe文件。
没有找到任何教程,这就是我尝试过的:
test.py:
from xlwings import Book
import xlwings as xw
def test():
sh = xw.Book.caller().sheets['a']
sh.range('A1').value = 'hello'
if __name__ == '__main__':
test()
然后我使用pyinstaller:
pyinstaller test.py -F
我将电子表格test.xlsm复制到与test.exe相同的目录
来自test.xlsm的vba代码:
Sub callpython()
RunFrozenPython ("test.exe")
End Sub
最终我得到了:---------------------------
' TEST.EXE'不被识别为内部或外部命令,可操作程序或批处理文件。
更令人烦恼的是,如果我在python中导入pandas,pyinstaller甚至会因为#34;超出最大递归深度而赢得编译器。
有人能举例说明如何让这两件事情协同工作吗?我甚至不必使用xlwings或pyinstaller,只要它可以将python代码变成一个可执行文件并从Excel运行它。
=======================
更新
我终于修理了它们:
希望xlwings团队可以用更强大的文件替换查找.exe文件的逻辑。