曹夢川
(寧夏職業(yè)技術(shù)學(xué)院,寧夏 銀川 750021)
隨著信息技術(shù)的快速發(fā)展,越來越多的地方政府、企業(yè)、學(xué)校開展實(shí)用了無紙化辦公,相比以往的辦公模式,OA系統(tǒng)已經(jīng)成為各大公司的標(biāo)配,具有強(qiáng)大的便捷性,但是在某一些情景下,例如疫情數(shù)據(jù)上報(bào)、員工信息填報(bào)、員工信息匯總等相關(guān)工作還是需要大量的人工進(jìn)行處理、統(tǒng)計(jì)、分析。在面對(duì)數(shù)據(jù)量很小的任務(wù)時(shí),這類的辦公形式無法體現(xiàn)弊端,但是當(dāng)數(shù)據(jù)量龐大到一定級(jí)別的時(shí)候,人工處理這些高重復(fù)性的任務(wù)不僅耗時(shí)耗力,還可能會(huì)出現(xiàn)錯(cuò)誤或數(shù)據(jù)遺漏,對(duì)辦公效率影響嚴(yán)重。在這個(gè)信息化時(shí)代,如何快速處理源源不斷的數(shù)據(jù)已經(jīng)是現(xiàn)代辦公的主要問題。在各大學(xué)校中此類問題最為突出,尤其是在學(xué)校的教務(wù)部門中,教務(wù)人員每天需要處理大量的學(xué)生數(shù)據(jù),例如寧夏職業(yè)技術(shù)學(xué)院軟件學(xué)院全年級(jí)的學(xué)生已經(jīng)超過1 200人,學(xué)校要求學(xué)院每天上報(bào)學(xué)生情況數(shù)據(jù),負(fù)責(zé)教務(wù)的老師一天要處理這些碎片化的數(shù)據(jù),效率和準(zhǔn)確性來說都很難保證。如何通過辦公自動(dòng)化來解決大量重復(fù)、瑣碎的工作任務(wù),減少信息遺漏,提高工作效率,簡化教務(wù)人員的工作內(nèi)容,是本次的研究的重點(diǎn)。
隨著人工智能、大數(shù)據(jù)等新興科技的快速發(fā)展,Python語言也變得主流起來,憑借著Python強(qiáng)大的拓展性和豐富的第三方模塊,不僅受到程序員的熱愛,在辦公自動(dòng)化領(lǐng)域大顯身手。
辦公自動(dòng)化(Office Automation, OA)是將計(jì)算機(jī)技術(shù)與現(xiàn)代化辦公結(jié)合應(yīng)用的一種新型的辦公方式。目前而言,辦公自動(dòng)化沒有統(tǒng)一的定義,凡是在傳統(tǒng)的辦公中使用各種新技術(shù)或設(shè)備,都屬于辦公自動(dòng)化的領(lǐng)域。通過實(shí)現(xiàn)辦公自動(dòng)化,可以減少辦公人員重復(fù)性工作,有效提升辦公效率。
根據(jù)針對(duì)多個(gè)寧夏當(dāng)?shù)仄髽I(yè)、事業(yè)單位調(diào)研,大部分OA系統(tǒng)的主要功能是所有業(yè)務(wù)網(wǎng)上操作,流程無紙化,審批線上化等信息化手段。對(duì)于一些日常工作,并沒有給出有效的解決高重復(fù)性工作的方案。有些雖然提供了解決方案,但是沒有考慮到教務(wù)人員的真實(shí)需求,開發(fā)出來的需求沒有實(shí)用價(jià)值,很多工作不得不手工去做。因此加強(qiáng)對(duì)自動(dòng)化替代人工辦公的研究,將重復(fù)性高的工作交給機(jī)器,優(yōu)化人員工作,對(duì)全面提升各行各業(yè)辦公效率有著至關(guān)重要的作用。
通過對(duì)寧夏職業(yè)技術(shù)學(xué)院軟件學(xué)院教務(wù)部門的工作內(nèi)容分析,表格匯總、表格信息處理、表格填報(bào)為主要的工作內(nèi)容。其中部分工作是具有很大的重復(fù)性,這樣高重復(fù)性的工作,非常適合通過辦公自動(dòng)化來解決問題。針對(duì)教務(wù)人員不同的工作內(nèi)容,設(shè)計(jì)應(yīng)對(duì)的方案,從而實(shí)現(xiàn)質(zhì)量與效率的提高,同時(shí)還可以將信息在各個(gè)部門之間進(jìn)行交流與共享,避免重復(fù)索要數(shù)據(jù)的麻煩。所以辦公自動(dòng)化對(duì)教務(wù)辦公的效率提升有著非常重要的作用及幫助。
開發(fā)語言選取Python語言,主要原因是Python語言作為人工智能、大數(shù)據(jù)分析的重要支持語言,具有很強(qiáng)大、免費(fèi)的“代碼庫”,用戶可以調(diào)用集成完整的庫實(shí)現(xiàn)自己想要的功能;Python作為腳本語言,和其他語言相比更加簡潔、高效;Python被稱為“膠水語言”,能夠很好的包裝和調(diào)用其他語言編寫的庫文件。
Pandas 是Python中一個(gè)強(qiáng)大的分析結(jié)構(gòu)化數(shù)據(jù)的工具集,基礎(chǔ)是Numpy(提供高性能的矩陣運(yùn)算),提供高性能、易于使用的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)分析工具。名字衍生自術(shù)語”panel data”(面板數(shù)據(jù))和 “Python data analysis”(Python 數(shù)據(jù)分析)。
MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫管理系統(tǒng),是一種關(guān)聯(lián)數(shù)據(jù)庫管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉庫內(nèi),就增加了速度并提高了靈活性。
本次研究以寧夏職業(yè)技術(shù)學(xué)院軟件學(xué)院教務(wù)部門為研究樣本,軟件學(xué)院2019級(jí)共有5個(gè)專業(yè),合計(jì)13個(gè)班級(jí),共536學(xué)生。主要數(shù)據(jù)來源是以班級(jí)為單位提交的各類表格,如個(gè)人信息登記表、疫情登記表等;學(xué)生相關(guān)各類表格,如活動(dòng)報(bào)名表、信息表等。
1.2.1 表格匯總的實(shí)現(xiàn)
根據(jù)軟件學(xué)院實(shí)際情況分析,教務(wù)人員每天需要對(duì)13個(gè)班級(jí)表格進(jìn)行匯總,平均耗時(shí)在10到20分鐘之間,如果涉及到全部年級(jí)班級(jí),處理時(shí)間約90分鐘左右,人工方式已無法更加快捷的解決此類問題。通過使用Python進(jìn)行辦公自動(dòng)化,使用腳本實(shí)現(xiàn)表格的匯總,不論多少張表格,都可在1秒內(nèi)完成匯總,并且信息來源于原始表格,不會(huì)出現(xiàn)遺漏或填報(bào)串行等情況,匯總后生成新的表格,原始數(shù)據(jù)表格僅僅作為數(shù)據(jù)讀取使用,不會(huì)對(duì)源數(shù)據(jù)造成不可逆的損壞。
圖1為具體實(shí)現(xiàn)思路:
圖1 表格匯總流程
(1)指定需要合并所有表格所在的文件夾絕對(duì)路徑,通過Python中OS庫中的walk方法遍歷文件夾里所有文件的名稱,與文件所在的絕對(duì)路徑拼接成完整路徑,存放在列表中,用于循環(huán)操作文件夾中所有的excel文件。
(2)使用循環(huán)調(diào)用pandas庫中的read_excel方法分別讀取文件夾中所有的文件,生成對(duì)應(yīng)的dataframe對(duì)象。
(3)創(chuàng)建一個(gè)新的dataframe對(duì)象,用于存儲(chǔ)所有所有excel數(shù)據(jù),并設(shè)置columns參數(shù)為對(duì)應(yīng)表頭信息。將讀取的數(shù)據(jù)通過循環(huán)依次寫入這個(gè)新的dataframe對(duì)象中。
(4)通過pandas庫中to_excel方法將數(shù)據(jù)寫入新的excel中,完成合并操作。
具體實(shí)現(xiàn)代碼:
獲取文件夾中文件所在的全部路徑
根據(jù)樣本數(shù)據(jù)測試100次顯示,合并文件所用平均時(shí)間約為1.3秒
1.2.2 構(gòu)建學(xué)生信息庫
根據(jù)調(diào)研顯示,因不同的機(jī)構(gòu)或單位定期要求學(xué)校提交學(xué)生信息,大部分學(xué)生信息例如姓名、班級(jí)、學(xué)號(hào)、電話、家庭住址等經(jīng)常重復(fù)填寫,教務(wù)人員不得不等各班學(xué)生填報(bào)完畢后提交上來,然后在進(jìn)行匯總,因涉及班級(jí)眾多,往往在提交的過程階段花費(fèi)時(shí)間最長。
很多學(xué)校為了解決此類問題建設(shè)了學(xué)生信息庫,但是因?yàn)槭褂玫募夹g(shù)為前后端技術(shù),學(xué)生填寫數(shù)據(jù)需要通過網(wǎng)頁。當(dāng)有新的字段需要填報(bào),后臺(tái)管理員必須重新設(shè)置或修改頁面信息,學(xué)生按照要求重新填報(bào);有的服務(wù)端沒有實(shí)現(xiàn)低代碼化,還需要對(duì)頁面進(jìn)行二次開發(fā)以應(yīng)對(duì)新的字段填寫,可以說將簡單的問題復(fù)雜化,耗時(shí)耗力耗錢,無法有效的解決問題。
然而在通過表格的自動(dòng)化匯總的實(shí)現(xiàn)后,本質(zhì)來說,這個(gè)合成后的表格就是一個(gè)完整的數(shù)據(jù)集,可以使用該數(shù)據(jù)集在MySql中構(gòu)建一個(gè)學(xué)生信息庫,那么就將對(duì)數(shù)據(jù)庫的維護(hù)轉(zhuǎn)變成了對(duì)excel的維護(hù),如果填報(bào)的表沒有新的字段出現(xiàn),可以直接使用Pandas中的to_sql方法,將現(xiàn)有的數(shù)據(jù)信息全部寫入至對(duì)應(yīng)的數(shù)據(jù)庫表中。從而快速完成學(xué)生信息庫的建設(shè)。
但是在面臨新的字段信息的時(shí)候,會(huì)存在一個(gè)運(yùn)行時(shí)間的問題,如果采用常規(guī)循環(huán)嵌套的方法,一條一條數(shù)據(jù)進(jìn)行比對(duì),每個(gè)字段也需要去比對(duì),那么所花費(fèi)的時(shí)間復(fù)雜度O(),完成的時(shí)間遠(yuǎn)超人工手動(dòng)完成的時(shí)間,這樣做反而適得其反。
解決思路:
(1)在學(xué)生填表階段,不需要設(shè)置特別多字段的表格,只需要學(xué)生填寫學(xué)號(hào)和新字段信息。
(2)對(duì)上交的表格進(jìn)行合并,存放在dataframe對(duì)象中,不進(jìn)行生成新表格和數(shù)據(jù)庫寫入的操作。
(3)在數(shù)據(jù)庫中對(duì)應(yīng)表中創(chuàng)建新字段,根據(jù)dataframe對(duì)象中學(xué)生學(xué)號(hào)作為查找的關(guān)鍵key,使用MySql中update方法通過學(xué)生學(xué)號(hào)作為主鍵索引更新數(shù)據(jù)。
MySql數(shù)據(jù)庫根據(jù)主鍵索引所采用的是聚集索引,聚集索引的葉子節(jié)點(diǎn)就是數(shù)據(jù)節(jié)點(diǎn),從上至下遍歷一次B+樹,直到找到具體的主鍵,拿到葉子結(jié)點(diǎn)存儲(chǔ)的數(shù)據(jù)。時(shí)間復(fù)雜度為O(),符合自動(dòng)化辦公中快速的這一特點(diǎn)的要求。
根據(jù)樣本數(shù)據(jù)經(jīng)過100次測試顯示,對(duì)學(xué)生信息庫進(jìn)行數(shù)據(jù)更新的平均用平均時(shí)在1.2秒主鍵索引模式如圖2所示。
圖2 主鍵索引模式
具體實(shí)現(xiàn)代碼:
1.2.3 表格自動(dòng)填報(bào)
在建立好學(xué)生信息庫后,即可用信息庫中的數(shù)據(jù)完成學(xué)生報(bào)表的自動(dòng)填報(bào)功能。根據(jù)不同的報(bào)表要求,從信息庫中選取相關(guān)字段,自動(dòng)寫入excel中。遇到根據(jù)班級(jí)分別上報(bào)的情況,可通過將班級(jí)作為班級(jí)作為一個(gè)sheet,分別將各個(gè)班級(jí)寫入對(duì)應(yīng)sheet。
具體實(shí)現(xiàn)思路:
(1)使用Pandas中read_sql()方法直接讀取對(duì)應(yīng)數(shù)據(jù)信息,得到一個(gè)dataframe對(duì)象。
(2)使用Pandas中l(wèi)oc進(jìn)行切片,獲取所需要的字段,并生成新的dataframe對(duì)象。
(3)使用groupby()方法對(duì)切片后的數(shù)據(jù)按照班級(jí)進(jìn)行分組。
(4)通過to_excel方法將同一組別的數(shù)據(jù)寫入到一張sheet中,循環(huán)至所有組別寫入完畢。
根據(jù)樣本數(shù)據(jù)測試100次顯示,19級(jí)全體學(xué)生填寫疫情登記表所用平均時(shí)間為4秒。
代碼實(shí)現(xiàn):
通過多次實(shí)驗(yàn),自動(dòng)化辦公為教務(wù)人員提升的辦公效率的成效是非常明顯的:(1)匯總表格平均用時(shí)在1.3秒。(2)數(shù)據(jù)信息庫的更新平均用時(shí)在1.2秒。(3)自動(dòng)填報(bào)報(bào)表從已有的信息庫中所用時(shí)4秒。(4)該研究結(jié)果解決了大部分需要重復(fù)去做的工作,實(shí)現(xiàn)了辦公自動(dòng)化。
優(yōu)化教務(wù)辦公,用機(jī)器替代人工是實(shí)現(xiàn)高效辦公的必要途徑,但是在自動(dòng)化具體實(shí)現(xiàn)方面必須立足于實(shí)際需求,依據(jù)真實(shí)需求設(shè)計(jì)相應(yīng)功能,才能真正實(shí)現(xiàn)辦公自動(dòng)化。