蘭天 鄧小云


摘 要:利用現有OA系統的電子假條圖片和計算機OCR(Optical Character Recognition)技術,實現假條圖片中員工姓名、請假時段、事由等信息的自動識別與摳取。將相關信息自動匯總,最終通過使用命令批處理調用Node.js連接百度OCR接口,摳取假條圖片上相關信息。在后臺調用Excel假條統計文件,使用VBA宏將摳取的假條信息填入,并使用Excel相關公式去除本年度法定節假日和周末,最終計算出員工實際請假天數,并自動填入,以實現假條自動化匯總,減少人事部門人工匯總的工作壓力,降低出錯率。
關鍵詞:OCR技術;OA系統;綠色人力資源
中圖分類號:F272.92;TP391.4? ? ? 文獻標志碼:A? ? ? 文章編號:1673-291X(2020)23-0073-02
長期以來,人事部門假條匯總工作都以紙質請假條的人工保管為主,假條的保管、查詢、統計和數據分析等都十分不便捷,并需要消耗大量的人力物力,且出錯率高。然而,隨著信息化的發展,現階段很多單位都已經擁有OA系統(Office Automation System),這樣就使得人事管理員可以獲取制式的請假條圖片。另一方面,OCR(Optical Character Recognition)技術近年來發展迅速,精準度高,百度、搜狗、騰訊、漢王等行業巨頭都提供了OCR接口,方便其他程序調用。因此,可以通過使用Node.js調用OCR接口,完成圖片有效內容的摳取,再調用Excel文件,將有效內容自動填入Excel文件中,并配合Excel中的相關公式和預留信息,完成自動匯總和統計員工及二級部門的全年請假狀況。
一、使用Node.js調用百度OCR接口
1. var image = fs.readFileSync("./image/1.png").toString("base64");
2. var client = new AipOcrClient("118298", "Oj4LWg9LUH", "pKtcyr7cxIRAGlg");
使用Node.js調用百度OCR,摳取制式圖片上的信息,并將它們以項的形式存儲在JavaScript的數組里。
二、調用自定義模板文字識別
1. var fs = require(′fs′);
2. var xlsx=require("node-xlsx");
3. client.custom(image, options).then(function(result) {
4.? ? ?var datas=[];
5.? ? ?var result3=`=HYPERLINK("假條照片`+′\\′ + result.data.ret[1].word + result.data.ret[2].word.replace(/-/g, ′′) + "-" + result.data.ret[0].word.replace(/-/g, ′′) + `.png")`;
6.? ? ?var result2=result.data.ret[2].word.replace(/^(\d{4})(\d{2})(\d{2})$/, "$1-$2-$3");
7.? ? ?var result0=result.data.ret[0].word.replace(/^(\d{4})(\d{2})(\d{2})$/, "$1-$2-$3");
8.? ? ?var data=["",result.data.ret[1].word,result2,result0,"",result3];
9.? ? ?datas.push(data);
10.? ? ? ?var buffer=xlsx.build([
11.? ? ? ? ? ?{
12.? ? ? ? ? ? ? ? ?name:′sheet3′,
13.? ? ? ? ? ? ? ? ?data:datas
14.? ? ? ? ? ?}
15.? ? ? ? ?]);
16. fs.writeFileSync(′../newAdd.xlsx′, buffer, {′flag′:′w′});
17.? ? ?fs.rename(′./image/1.png′, ′../假條照片/′ + result.data.ret[1].word + result.data.ret[2].word.replace(/-/g, ′′) + "-" + result.data.ret[0].word.replace(/-/g, ′′) + ′.png′, function(err) {
18.? ? ? ? ?if (err) {
19.? ? ? ? ? ? ?throw err;
20.? ? ? ? ?}
21.? ? ?});
22. }).catch(function(err) {
23.? ? ?// 如果發生網絡錯誤
24.? ? ?console.log(err);
25. });
調用文字模板進行摳取,并使用npm安裝node-xlsx模塊,將存入數組中的項依次存入Excel文檔的各字段中,并產生圖片鏈接,將假條圖片存放在數據庫中,可以在Excel文件里直接點擊調取。
三、使用Excel公式調取相關員工的工號信息,并計算其除去法定節假日和公休日的請假天數
匹配員工的姓名、工號與所屬部門采用了VLOOKUP公式。使用它的好處是可以將其他sheet中提前儲存的員工姓名、工號、所屬部門等相關信息調用出來,以達到OCR識別員工工號后即可獲得員工姓名、所屬部門等一切相關信息。同樣,在統計請假天數時采用了NETWORKDAYS與NETWORKDAYS.INTL兩個公式,不但可以獲取本年度工作日等信息,還可以調用在其他sheet中預先設置的法定節假日、寒暑假等信息。這樣就做到了根據具體年份的具體情況進行靈活調整,保證了員工請假時長統計的精準性。匯總同一員工多張假條請假天數總和時,則使用了SUMIF公式,這樣可以靈活統計某位員工全年請假的多張假條,計算出他總計請假天數,并可以預警某員工的總計請假天數是否已達到紅線,以及預警某二級部門的所有員工的總計請假天數是否已達到紅線。
四、結論
隨著無紙化辦公和綠色人力資源的發展,請假條的管理和匯總統計對精確性和高效性有著越來越高的要求。同時,伴隨著OCR(Optical Character Recognition)技術的發展,我們有許多優秀的漢字OCR平臺向大眾提供接口,如漢王OCR、百度OCR、搜狗OCR、騰訊OCR等。它們能做到精確識別漢字人名中的生僻字,甚至對部分手寫字體也有一定的識別能力。并且支持使用Java、JavaScript、Python、C、C++、C#、PHP等主流編程語言接入相關接口。
本文的實現方案即是使用JavaScript調用Node.js連接百度OCR的接口,以達到對制式電子假條的精確識別和摳取。再運用Node.js中的node-xlsx模塊將摳取的內容導入Excel文件中進行各種匯總統計工作。整個過程只需人事管理員點擊“運行.bat”便可自動化完成,是辦公自動化和綠色人力資源管理的一次較好的實踐。
參考文獻:
[1]? 蘭天,張榮慶,梁乾.Excel協同匯總的Nodejs算法解決方案[J].數碼世界,2020:39.
[2]? 蘭天,馬葉.企業人力資源績效管理的創新探討[J].商訊,2019,(4):192-194.
[3]? 蘭天,馬葉.綠色人力資源管理研究述評與展望[J].商訊,2019,(3):193-195.
[4]? 許正義.基于NodeJs的成果管理輔助系統設計與實現[D].南昌:江西師范大學,2018.
[5]? 邵明浩.基于NodeJS的接口管理平臺設計與實現[D].南京:東南大學,2017.
[6]? 黃孝羽.基于NodeJS函數接口描述的正則引擎的設計和實現[D].南京:東南大學,2017.
[7]? 張海波.基于Android的學生電子假條管理平臺[J].電腦知識與技術,2018,(30).
[8]? 吳建軍.淺談人力資源管理中請假條標準格式設計[J].中小企業管理與科技(中旬刊),2015,(10).
[9]? 張婷婷,馬明棟,王得玉.OCR文字識別技術的研究[J].計算機技術與發展,2019,(4).
[10]? 王學梅.OCR文字識別系統的應用[J].現代信息科技,2020,(18).
收稿日期:2020-06-08
作者簡介:蘭天(1990-),男,陜西漢中人,助教,碩士,從事人力資源管理研究;鄧小云(1984-),女,陜西漢中人,碩士,從事公共管理研究。