Excel是永远的神!教你让Excel化身“机器人”,自动做员工背景调查

蒋祎 Johnny
+ 关注
2022-02-22 10:54
1124次阅读
今天的故事并不精彩,说的是用一种比较过时的技术,实现了一个不太复杂的需求。
主要两点心得想分享:
  • 有些活得设法给机器干,不然早晚给机器干。
  • Excel,YYDS! (永远的神)
全文终 (bushi)
这是一个背调类的需求。
为了合规,我们要定期排查员工的关联企业。
方法是拿着有所有人身份证号的Excel表,去一个类似企查查的网站查:
1.进入网站,选XXX查询B标签页、输入身份证号,点查询
Excel是永远的神!教你让Excel化身“机器人”,自动做员工背景调查
2.如果查询的身份证号没有经办企业记录,就会弹出对话框提示:
Excel是永远的神!教你让Excel化身“机器人”,自动做员工背景调查
3.如果查到了,就会给出一条链接:
Excel是永远的神!教你让Excel化身“机器人”,自动做员工背景调查
点进链接,出现含关联企业的详细信息的表格:
Excel是永远的神!教你让Excel化身“机器人”,自动做员工背景调查
每查一个人,至少点4次鼠标,按2次键盘,而且网页得加载、结果要记载,就算我整套操作如有神、连续工作不走神,20秒也不能再快。
每个人都占用我20秒,120个人就能占用我一节课。
这项工作的成本、用程序自动化能节约的成本,就都可以量化了。
这是一个RPA(机器人流程自动化)的需求。
RPA是一种软件,它能模仿你在电脑上的操作,然后日夜不停自动做,不吃不睡不抱怨,只要公司不断电。用RPA甚至可以不会编程;拖拖拽拽就能设置好流程。RPA会在背后把你的设置转换成代码,这样你也可以通过改代码进一步优化。
Excel是永远的神!教你让Excel化身“机器人”,自动做员工背景调查
这有点像用Excel录制宏。当然,RPA除了重复操作,还会有图像识别、文字提取之类的更智能的功能。
但是,我这次没用RPA,而用Excel VBA。
有这么几点原因:

1.业务上,这个需求算不上高频,也算不上大量

2.实现上,用RPA要花的时间不比写VBA程序更少

3.技术上,VBA基本能实现,当然最重要的原因是:那个网站不要验证码

4.设备上,我的电脑有点带不动

我希望让Excel自动干这么些事情:
Excel是永远的神!教你让Excel化身“机器人”,自动做员工背景调查
VBA能读写Excel,那是天经地义的,没什么好说。
我们来说VBA自动搜索网页。
为什么Excel还能操作别的软件?(比如IE浏览器)
因为这些软件开放了接口,让程序员可以写代码接入并操作这些软件,例如打开IE浏览器、进入指定网址:
Excel是永远的神!教你让Excel化身“机器人”,自动做员工背景调查
程序打开网页的同时也读取到里里面的内容。只不过程序读到的是一推HTML语言的代码,而非我们肉眼所见的页面。我们看得到的网页,实际上是浏览器根据这些代码“画”出来的。
Excel是永远的神!教你让Excel化身“机器人”,自动做员工背景调查
接下来,我们要在页面上进行输文字、点按钮等操作。
但我们没法直接告诉程序“把文字输在中间那个框里,然后点蓝色那个键。”
在网页的代码中,每个输入框、每个按钮都有自己的id,我们得告诉程序对哪个id的按键执行什么操作(例如点击)。
Excel是永远的神!教你让Excel化身“机器人”,自动做员工背景调查
怎么才能知道按钮的id是什么?文末的参考链接里会说。
点完按钮之后,可能还得让我们的程序先暂停个几秒,不然跑得太快了,网页载入的速度都跟不上。
载完后,程序再次读取网页上的内容代码。
如果没查询到记录,网页会弹个框出来。
这里有个坑,因为VBA是单线程的,程序被这个弹框中断,直接死火,没法再执行点“确定”操作。
为了处理简单,我们搞了另一个小程序,逢弹框就关:
Excel是永远的神!教你让Excel化身“机器人”,自动做员工背景调查
并且在VBA程序的最开始就启动这个小程序。
Excel是永远的神!教你让Excel化身“机器人”,自动做员工背景调查
(这里是用VBA启动CMD并执行命令,执行同文件夹下的exe程序)
那怎么判断网页查到了关联企业呢?
通常的思路是用程序读取出网页上的文字,并根据关键字判断。
但是这个网页有更简单的判断方法:如果有关联企业,网页上会用一个表格来呈现结果,如果没有关联企业则没有这个表格,而在网页的HTML代码中。因此可以通过网页的HTML代码中,有没有表格的标志符来判断。
Excel是永远的神!教你让Excel化身“机器人”,自动做员工背景调查
最后是截图。截图的原理是,用VBA模拟按键盘上的截图键,将整个屏幕截图再复制在剪贴板上,再将剪贴板上的图片保存为jpg格式。
这里用到的API是GDI+。
最终的Excel结果是这样的:

Excel是永远的神!教你让Excel化身“机器人”,自动做员工背景调查

这种方法的不足是,浏览器的必须前台运行,也就是说你不能同时在这台电脑上干其他活了;而且由于要等待网页载入,每小时只能查几百人。

当然,在这个关联企业查询系统没有提供开发接口的背景下,这种方法已经很香了。毕竟,下班点一下“开始检查”,明天上班的时候就已经干完了~

最后是这次的参考代码链接:
VBA操作网页:https://www.cnblogs.com/LiuRunky/p/VBA_Tutorial.html
剪贴板图片转JPG文件:http://www.office-cn.net/thread-119759-1-1.html
本文经授权转载自微信公众号:Johnny HCM 原标题《成熟的Excel,应该会自己做背调
0
相关话题
表单制作
相关文章
最新文章
查看更多
关注 36氪企服点评 公众号
打开微信扫一扫
为您推送企服点评最新内容
消息通知
咨询入驻
商务合作