一、安装Pyhton
到Python官网下载并安装python主程序
二、安装xlwings及相关插件
1.通过pip安装xlwings
pip install xlwings
2.通过xlwings安装Excel或WPS插件
xlwings addin install
a.安装后Excel显示效果
b.安装后WPS显示效果
由于最新版本的wps不支持VBA,需要下载单独的vba安装包进行安装, wps.vba.exe。
WPS在新版本新增【沙箱保护】功能,并且默认为开启状态,当用户主动更新或自动升级到新版本时,沙箱保护功能会导致VBA代码中的Shell函数没有权限运行。
在运行至shell函数时WPS就会报"70"错误。
解决方法:依次点击【WPS 表格】→【三】→【设置】,关闭【沙箱保护】功能,然后重启WPS即可解决。
三、通过模板创建项目
xlwings相当于是连接python的桥梁,要想在表格中调用python需要通过vba代码调用python程序,对于不怎么熟悉vba的小伙伴来说还是有一定的学习成本,而xlwings有个小功能帮你创建相关文件,非常简单:
xlwings quickstart PythonExcelProject
执行该命令,xlwings将会帮你创建PythonExcelProject文件夹及PythonExcelProject.py
与PythonExcelProject.xlsm
文件。
PythonExcelProject.xlsm文件中包含写好的调用python的代码(Alt+F11可快速查看):
代码主要功能为调用当前目录下同名python文件的
main
函数
Sub SampleCall()
mymodule = Left(ThisWorkbook.Name, (InStrRev(ThisWorkbook.Name, ".", -1, vbTextCompare) - 1))
RunPython "import " & mymodule & ";" & mymodule & ".main()"
End Sub
Sub SampleRemoteCall()
RunRemotePython "http://127.0.0.1:8000/hello", apiKey:="DEVELOPMENT"
End Sub
PythonExcelProject.py
文件中则为操作excel的代码:
import xlwings as xw
def main():
wb = xw.Book.caller()
sheet = wb.sheets[0]
if sheet["A1"].value == "Hello xlwings!":
sheet["A1"].value = "Bye xlwings!"
else:
sheet["A1"].value = "Hello xlwings!"
@xw.func
def hello(name):
return f"Hello {name}!"
if __name__ == "__main__":
xw.Book("PythonExcel.xlsm").set_mock_caller()
main()
而后只需改动PythonExcelProject.py
文件即可操作excel文件。