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