Excel调用PlayWright
这是前两篇文章的继续,第一篇文章使用Playwright
抓取动态网页,第二篇文章PowerBI
抓取动态网页。今天是Excel
通过Playwright
抓取网页。
PlayWright
本身支持C#
和python
,本来想使用C#
的VSTO
,结果VSTO只支持.net
标准版,Playwright
只支持.net core
。
后来就找到了可以在Excel
中调用python
的xlwings
。
安装xlwings
1 | conda create -n excel python xlwings pandas |
新建一个conda
环境,取名excel
,安装xlwings
和pandas
两个包。
xlwings
架起了excel
和python
的桥梁,使得excel
通过VBA调用python
,python
也可以调用操作excel
。pandas
处理网页返回的数据,并将数据通过xlwing
写入excel
。
环境搭建
1 | conda activate excel # 激活虚拟环境 |
xlwings quickstart pyexcel
新建名为pyexcel
工程,-s
是将xlwing
的excel
插件写进文件里,可以独立运行,不需要xlwing
插件,参见https://docs.xlwings.org/zh_CN/latest/addin.html 。
xlwings
生成两个文件,pyexcel.xlsm
和pyexcel.py
。
将pyexcel.xlsm
的_xlwings.conf
页签更名为xlwings.conf
,这是xlwing
的配置文件。
xlwings配置文件有三个级别,全局、文件簿目录级、文件簿级,参见https://docs.xlwings.org/zh_CN/latest/addin.html
全局配置文件为.xlwings\xlwings.conf in your home folder, that is usually C:\Users<username>
文件簿目录配置文件为项目所在目录的xlwings.conf
文件簿级的配置文件为xlwings.conf页签
优先级别 文件簿 > 文件簿项目 > 全局
pyexcel.xlsm
默认调用pyexcel.py
中的main()
,代码可以写在这里。
主要代码
1 |
|
wb.app.api和wb.api返回一个标准excel对象,后面调用的属性方法和VBA的相同。
1 | def response(res): |
在excel
中,运行宏SampleCall()
即可调用上面代码,最后生成MiddlePETTM
的execl table
。