国产精一区二区_午夜视频99_免费白白视频_中文字幕一区免费

Excel是永遠(yuǎn)的神!教你讓Excel化身“機(jī)器人”,自動(dòng)做員工背景調(diào)查

蔣祎 Johnny
+ 關(guān)注
2022-02-22 10:54
2012次閱讀
今天的故事并不精彩,說的是用一種比較過時(shí)的技術(shù),實(shí)現(xiàn)了一個(gè)不太復(fù)雜的需求。
主要兩點(diǎn)心得想分享:
  • 有些活得設(shè)法給機(jī)器干,不然早晚給機(jī)器干。
  • Excel,YYDS! (永遠(yuǎn)的神)
全文終 (bushi)
這是一個(gè)背調(diào)類的需求。
為了合規(guī),我們要定期排查員工的關(guān)聯(lián)企業(yè)。
方法是拿著有所有人身份證號(hào)的Excel表,去一個(gè)類似企查查的網(wǎng)站查:
1.進(jìn)入網(wǎng)站,選XXX查詢B標(biāo)簽頁(yè)、輸入身份證號(hào),點(diǎn)查詢
Excel是永遠(yuǎn)的神!教你讓Excel化身“機(jī)器人”,自動(dòng)做員工背景調(diào)查
2.如果查詢的身份證號(hào)沒有經(jīng)辦企業(yè)記錄,就會(huì)彈出對(duì)話框提示:
Excel是永遠(yuǎn)的神!教你讓Excel化身“機(jī)器人”,自動(dòng)做員工背景調(diào)查
3.如果查到了,就會(huì)給出一條鏈接:
Excel是永遠(yuǎn)的神!教你讓Excel化身“機(jī)器人”,自動(dòng)做員工背景調(diào)查
點(diǎn)進(jìn)鏈接,出現(xiàn)含關(guān)聯(lián)企業(yè)的詳細(xì)信息的表格:
Excel是永遠(yuǎn)的神!教你讓Excel化身“機(jī)器人”,自動(dòng)做員工背景調(diào)查
每查一個(gè)人,至少點(diǎn)4次鼠標(biāo),按2次鍵盤,而且網(wǎng)頁(yè)得加載、結(jié)果要記載,就算我整套操作如有神、連續(xù)工作不走神,20秒也不能再快。
每個(gè)人都占用我20秒,120個(gè)人就能占用我一節(jié)課。
這項(xiàng)工作的成本、用程序自動(dòng)化能節(jié)約的成本,就都可以量化了。
這是一個(gè)RPA(機(jī)器人流程自動(dòng)化)的需求。
RPA是一種軟件,它能模仿你在電腦上的操作,然后日夜不停自動(dòng)做,不吃不睡不抱怨,只要公司不斷電。用RPA甚至可以不會(huì)編程;拖拖拽拽就能設(shè)置好流程。RPA會(huì)在背后把你的設(shè)置轉(zhuǎn)換成代碼,這樣你也可以通過改代碼進(jìn)一步優(yōu)化。
Excel是永遠(yuǎn)的神!教你讓Excel化身“機(jī)器人”,自動(dòng)做員工背景調(diào)查
這有點(diǎn)像用Excel錄制宏。當(dāng)然,RPA除了重復(fù)操作,還會(huì)有圖像識(shí)別、文字提取之類的更智能的功能。
但是,我這次沒用RPA,而用Excel VBA。
有這么幾點(diǎn)原因:

1.業(yè)務(wù)上,這個(gè)需求算不上高頻,也算不上大量

2.實(shí)現(xiàn)上,用RPA要花的時(shí)間不比寫VBA程序更少

3.技術(shù)上,VBA基本能實(shí)現(xiàn),當(dāng)然最重要的原因是:那個(gè)網(wǎng)站不要驗(yàn)證碼

4.設(shè)備上,我的電腦有點(diǎn)帶不動(dòng)

我希望讓Excel自動(dòng)干這么些事情:
Excel是永遠(yuǎn)的神!教你讓Excel化身“機(jī)器人”,自動(dòng)做員工背景調(diào)查
VBA能讀寫Excel,那是天經(jīng)地義的,沒什么好說。
我們來說VBA自動(dòng)搜索網(wǎng)頁(yè)。
為什么Excel還能操作別的軟件?(比如IE瀏覽器)
因?yàn)檫@些軟件開放了接口,讓程序員可以寫代碼接入并操作這些軟件,例如打開IE瀏覽器、進(jìn)入指定網(wǎng)址:
Excel是永遠(yuǎn)的神!教你讓Excel化身“機(jī)器人”,自動(dòng)做員工背景調(diào)查
程序打開網(wǎng)頁(yè)的同時(shí)也讀取到里里面的內(nèi)容。只不過程序讀到的是一推HTML語(yǔ)言的代碼,而非我們?nèi)庋鬯姷捻?yè)面。我們看得到的網(wǎng)頁(yè),實(shí)際上是瀏覽器根據(jù)這些代碼“畫”出來的。
Excel是永遠(yuǎn)的神!教你讓Excel化身“機(jī)器人”,自動(dòng)做員工背景調(diào)查
接下來,我們要在頁(yè)面上進(jìn)行輸文字、點(diǎn)按鈕等操作。
但我們沒法直接告訴程序“把文字輸在中間那個(gè)框里,然后點(diǎn)藍(lán)色那個(gè)鍵。”
在網(wǎng)頁(yè)的代碼中,每個(gè)輸入框、每個(gè)按鈕都有自己的id,我們得告訴程序?qū)δ膫€(gè)id的按鍵執(zhí)行什么操作(例如點(diǎn)擊)。
Excel是永遠(yuǎn)的神!教你讓Excel化身“機(jī)器人”,自動(dòng)做員工背景調(diào)查
怎么才能知道按鈕的id是什么?文末的參考鏈接里會(huì)說。
點(diǎn)完按鈕之后,可能還得讓我們的程序先暫停個(gè)幾秒,不然跑得太快了,網(wǎng)頁(yè)載入的速度都跟不上。
載完后,程序再次讀取網(wǎng)頁(yè)上的內(nèi)容代碼。
如果沒查詢到記錄,網(wǎng)頁(yè)會(huì)彈個(gè)框出來。
這里有個(gè)坑,因?yàn)閂BA是單線程的,程序被這個(gè)彈框中斷,直接死火,沒法再執(zhí)行點(diǎn)“確定”操作。
為了處理簡(jiǎn)單,我們搞了另一個(gè)小程序,逢彈框就關(guān):
Excel是永遠(yuǎn)的神!教你讓Excel化身“機(jī)器人”,自動(dòng)做員工背景調(diào)查
并且在VBA程序的最開始就啟動(dòng)這個(gè)小程序。
Excel是永遠(yuǎn)的神!教你讓Excel化身“機(jī)器人”,自動(dòng)做員工背景調(diào)查
(這里是用VBA啟動(dòng)CMD并執(zhí)行命令,執(zhí)行同文件夾下的exe程序)
那怎么判斷網(wǎng)頁(yè)查到了關(guān)聯(lián)企業(yè)呢?
通常的思路是用程序讀取出網(wǎng)頁(yè)上的文字,并根據(jù)關(guān)鍵字判斷。
但是這個(gè)網(wǎng)頁(yè)有更簡(jiǎn)單的判斷方法:如果有關(guān)聯(lián)企業(yè),網(wǎng)頁(yè)上會(huì)用一個(gè)表格來呈現(xiàn)結(jié)果,如果沒有關(guān)聯(lián)企業(yè)則沒有這個(gè)表格,而在網(wǎng)頁(yè)的HTML代碼中。因此可以通過網(wǎng)頁(yè)的HTML代碼中,有沒有表格的標(biāo)志符來判斷。
Excel是永遠(yuǎn)的神!教你讓Excel化身“機(jī)器人”,自動(dòng)做員工背景調(diào)查
最后是截圖。截圖的原理是,用VBA模擬按鍵盤上的截圖鍵,將整個(gè)屏幕截圖再?gòu)?fù)制在剪貼板上,再將剪貼板上的圖片保存為jpg格式。
這里用到的API是GDI+。
最終的Excel結(jié)果是這樣的:

Excel是永遠(yuǎn)的神!教你讓Excel化身“機(jī)器人”,自動(dòng)做員工背景調(diào)查

這種方法的不足是,瀏覽器的必須前臺(tái)運(yùn)行,也就是說你不能同時(shí)在這臺(tái)電腦上干其他活了;而且由于要等待網(wǎng)頁(yè)載入,每小時(shí)只能查幾百人。

當(dāng)然,在這個(gè)關(guān)聯(lián)企業(yè)查詢系統(tǒng)沒有提供開發(fā)接口的背景下,這種方法已經(jīng)很香了。畢竟,下班點(diǎn)一下“開始檢查”,明天上班的時(shí)候就已經(jīng)干完了~

最后是這次的參考代碼鏈接:
VBA操作網(wǎng)頁(yè):https://www.cnblogs.com/LiuRunky/p/VBA_Tutorial.html
剪貼板圖片轉(zhuǎn)JPG文件:http://www.office-cn.net/thread-119759-1-1.html
本文經(jīng)授權(quán)轉(zhuǎn)載自微信公眾號(hào):Johnny HCM 原標(biāo)題《成熟的Excel,應(yīng)該會(huì)自己做背調(diào)
資深作者蔣祎 Johnny
0
相關(guān)話題
表單制作
相關(guān)文章
最新文章
查看更多
關(guān)注 36氪企服點(diǎn)評(píng) 公眾號(hào)
打開微信掃一掃
為您推送企服點(diǎn)評(píng)最新內(nèi)容
消息通知
咨詢?nèi)腭v
商務(wù)合作