上一篇文章讲到,使用Excel 快递单号批量查询函数
GetKuaidiStatus(company, number)
GetKuaidiStatusByKuaidiniao( business_id,app_key, company, number)
已经能够在Excel中查询绝大部分快递公司的单号信息,但鉴于申通公司的查询有验证码限制,此类快递仍无法实现Excel查询, 于是笔者另想办法,另辟蹊径,开发了Excel浏览器,借助菜鸟裹裹官网实现了快递查询功能,可查询申通,虽有一定技术困难,但最终调试成功,小小的骄傲一下:)
那就先来看一下效果吧!
左边的Excel中,单号在等待查询,右边的菜鸟裹裹网站自动逐个查询数据,结果最终会返回到左边的Excel中,是不是很神奇、很方便?
怎么实现的呢?
真相是我们使用了SQLite数据库作为Excel和Excel浏览器数据交换的桥梁,在Excel中通过公式发起查询请求,Excel浏览器拿到请求后逐一处理,处理完毕将数据返回到Excel中显示!
借助Excel浏览器查询快递,比原来通过Excel直接查询快递,速度更快,查询函数更新时不会导致Excel卡死。由于菜鸟裹裹网站对于非登录用户查询次数有限制,所以为了查询更多快递,需要登录自己的淘宝帐号,甚至要求人工验证,而Excel浏览器正好支持登录验证这个特殊场景。
操作很简单,首先下载Excel浏览器,然后在Excel浏览器中打开已经保存在其“文件”中的“菜鸟裹裹”网站,其他步骤是在Excel中按照往常一样使用GetKuaidiStatusByCainiaoguoguo()函数。
具体步骤参见如下说明:
1、从Excel网络函数库官网下载Excel浏览器,初始化数据库,如下如所示,在Excel浏览器文件菜单下,选择“初始化数据库”,提示“数据库初始化完成”表示Excel浏览器可在本机上正常运行。
2、点击左边浏览器左边栏“菜鸟裹裹官网”,如下图所示,网页出现“快递公司大全”表示网页显示正常,Excel浏览器可以查询到快递信息。
3、在Excel中,输入查询函数GetKuaidiStatusByCainiaoguoguo()
4、函数GetKuaidiStatusByCainiaoguoguo()
返回“加入队列...”,表示查询请求已加入到队列,Excel浏览器稍后会处理;如果返回“正在取值...”表示Excel浏览器还未处理该查询请求。查询完毕,会返回请求结果。
5、在Excel浏览器中“开始”处理请求,如下图所示,如果网速差,网页反应时间长,可增大定时器间隔。
6、Excel浏览器处理查询请求,直至处理完毕。Excel浏览器可一直开启监听程序,只要发现来自Excel新的请求,Excel浏览器都会自动处理。
7、遇到查询失败时,Excel浏览器会自动尝试三次,三次后继续处理下一个请求。当全部请求处理完毕后,可通过“重置失败记录”处理还未被处理的请求。
备注:
如果初始化数据库过程中发现如下错误,请关闭Excel或Excel浏览器,解除对数据库文件的占用。
看起来似乎很麻烦,但对使用过Excel API 网络函数库的小伙伴们来说,并不难,还不赶快来试试!
领取专属 10元无门槛券
私享最新 技术干货