(7)Excel中调用python代码及将Python代码打包成可执行程序:
①Excel调用python自定义函数
A、Excel中加载xlwings插件:新建Excel→选项→自定义功能区→主选项卡中勾选开发工具;自定义功能区→信任中心→信任中心设置→启动所有宏、信任VBA访问→确定;在工作表中,开发工具→Excel加载项→可用加载宏→浏览→搜索查找宏文件“xlwings.xlam”并加载→工具栏可看到xlwings选项卡
B、导入并调用python自定义函数:a、环境变量设置:若xlwings在cmd中输入报错,将需要调用的xlwings.exe的文件路径(这里是C:\Users\vitto\anaconda3\Scripts)在环境变量的用户变量path中添加上
b、创建:打开cmd,选择路径并执行xlwings quckstart table_test,生成table_test文件夹,内含table_test.py和.xlsm。py文件右键用IDLE(集成开发环境)可编辑。添加@xw.func,在下面自定义函数;在对应的xlsm文件中可以找到'User Defined Functions(UDFs)'中的'Import Functions'按钮(这里又报缺少模块的错误,还是需要添加下模块所在的环境变量中系统变量);然后就可以像使用Excel函数一样使用udfs函数了!c、如果py文件和xlsm文件不在一个文件夹下,没有相同主名:打开xlsm的xlwings模块后需设置pythonpath为py的路径、udf models设置为py的名称(不加后缀),其他操作相同。
②VBA调用python自定义函数:
A、调用:quickstart创建同名py和xlsm,xlsm文件开发工具中的visual basic,打开module1,这段代码即调用py文件的main();返回,在py文件下增加@xw.sub并写udfs,保存,在xlsm中开发工具→宏下选择执行宏
B、手动:编辑器IDLE上写的py和xlsx置于同一文件夹下,xlsx变为xlsm,vba下的xlsm右击→插入模块
C、VBA和Python代码混用
③将python代码转为可执行程序
A、PyInstaller: pip好PyInstaller后,在cmd切换至test.py文件所在的文件夹,输入pyinstaller -F -n test_exe test.py,可生成可执行程序test_exe.exe
B、注意:不要直接在jupyter里修改ipynb后缀为py,可创建py复制进去
C、pyinstaller的常见参数:模式为 pyinstaller 参数1 参数2 ...参数n xxx.py,注意py文件首尾添加os命令
| -F | 产生单个可执行文件 |
| -D | 产生包含可执行文件的文件夹,如命令pyinstaller -D add_exe.py --onefile,在dist文件夹下生成add_exe.exe |
| -n name | 生成spec文件的名字 |
| -i file | 指定exe的文件图标,后缀为.ico |
这两天在甲方linux服务器上对文件内容基本的复制粘贴删除都不会,太尴尬了,后续开启linux的学习。




