伍 莉,柯廣恒,王潔茹
(1.長江航道測量中心,湖北 武漢 430010)
基于預(yù)處理方式的數(shù)據(jù)文件快速錄入方法
伍 莉1,柯廣恒1,王潔茹1
(1.長江航道測量中心,湖北 武漢 430010)
通過研究逐條數(shù)據(jù)錄入方式的不足,提出了先對需要填報(bào)的數(shù)據(jù)條目進(jìn)行預(yù)處理,再通過解析讀取預(yù)處理后的信息實(shí)現(xiàn)批量導(dǎo)入數(shù)據(jù)庫。實(shí)驗(yàn)證明,該方法具有易操作、穩(wěn)定性好、效率高等優(yōu)點(diǎn),同時還可有效檢驗(yàn)數(shù)據(jù)資料填報(bào)的完整性,提高了成果錄入過程中的信息化和智能化水平。
預(yù)處理;批量導(dǎo)入;快速錄入
近年來,長江航道局高度重視信息化發(fā)展,全面推進(jìn)數(shù)字航道與智能航道建設(shè)。經(jīng)過多年的積累,目前已經(jīng)形成了大量的航道地形、水文記錄、報(bào)告文檔、影像錄音等數(shù)字資料。這些數(shù)字資料正日益增長,呈現(xiàn)“井噴”狀態(tài)。如何將這些海量的航道信息資源快速、準(zhǔn)確地錄入到數(shù)字資料管理系統(tǒng)之中,為更進(jìn)一步數(shù)字資源共享和應(yīng)用集成服務(wù)提供數(shù)據(jù)支撐,是數(shù)據(jù)管理過程中面臨的一個重要研究課題。
目前,數(shù)字資料管理系統(tǒng)的信息維護(hù)工作由專職文件錄入人員完成。文件錄入人員逐個文件填報(bào)上傳,期間需要填寫與文件相關(guān)的各種元數(shù)據(jù)信息,包括文件種類、制作時間、使用用途等幾十項(xiàng)內(nèi)容,填寫中還要對各元數(shù)據(jù)的相關(guān)信息進(jìn)行綜合審核。經(jīng)過一段時間使用,發(fā)現(xiàn)操作過程中存在以下缺點(diǎn):①元數(shù)據(jù)填寫時主觀因素較大,難以進(jìn)行完整性和有效性的綜合檢查,可能造成填報(bào)標(biāo)準(zhǔn)不統(tǒng)一;②在同一批次數(shù)據(jù)錄入過程中,大量元數(shù)據(jù)信息是重復(fù)的,但逐條錄入的方式無法應(yīng)用這一規(guī)律,造成重復(fù)錄入,降低了工作效率。
針對上述問題,有必要研究一種新的數(shù)據(jù)文件錄入方法,既能提高編輯填報(bào)操作中的便捷性,又能加強(qiáng)對錄入質(zhì)量的控制,從而大幅提高工作效率。
本研究采用了一種基于預(yù)處理方式的數(shù)據(jù)錄入方案,從而同時實(shí)現(xiàn)了易于填報(bào)審核和批量快速錄入兩大要求。
整個快速錄入流程設(shè)計(jì)為填報(bào)信息預(yù)處理、預(yù)處理信息檢驗(yàn)、批量錄入這3個步驟。首先,在預(yù)處理環(huán)境下,錄入人員批量填報(bào)、編輯需要上傳的各種數(shù)字資料包含元數(shù)據(jù)信息;接著,利用檢驗(yàn)程序逐條分析錄入信息的各元數(shù)據(jù),審核其完整性和有效性,并形成預(yù)處理后的成果;最后,通過導(dǎo)入程序讀取預(yù)處理成果,直接將數(shù)據(jù)批量存入數(shù)據(jù)庫并完成寫入校驗(yàn)。快速錄入流程如圖1所示。
圖1 快速錄入流程
3.1 預(yù)處理平臺
預(yù)處理平臺供錄入人員使用,實(shí)現(xiàn)對每一條待上傳文件的元數(shù)據(jù)編輯。因此對這一平臺有3點(diǎn)主要要求:一是使用簡單,容易上手;二是編輯功能強(qiáng)大,能對多條數(shù)據(jù)的相同元數(shù)據(jù)進(jìn)行復(fù)制,能對多條數(shù)據(jù)的規(guī)律性變化元數(shù)據(jù)自動生成,能同時預(yù)覽多條數(shù)據(jù)及其元數(shù)據(jù);三是具備強(qiáng)大的審核功能,能實(shí)現(xiàn)較為復(fù)雜的元數(shù)據(jù)完整性和有效性檢驗(yàn)。
經(jīng)過分析,開發(fā)一套獨(dú)立的預(yù)處理平臺雖然可以較好地實(shí)現(xiàn)上述功能,但耗時耗力更多。因此,最終采用基于微軟Excel作為基礎(chǔ)平臺,經(jīng)過二次開發(fā)來實(shí)現(xiàn)預(yù)處理平臺。Excel的優(yōu)勢在于,操作界面和方法一般辦公人員都很熟悉,且具備強(qiáng)大的基礎(chǔ)編輯功能和良好的二次開發(fā)接口。本研究將基于Excel,通過二次開發(fā)實(shí)現(xiàn)研發(fā)預(yù)處理編輯平臺。
1)填報(bào)模板設(shè)計(jì)。在XLS文件中,建立多張Sheet。其中,第一張Sheet用于錄入人員填報(bào)信息,該Sheet的每一列記錄一條待錄入的數(shù)據(jù),每一列記錄該數(shù)據(jù)的一個元數(shù)據(jù)信息;其他Sheet用于存放元數(shù)據(jù)字典。
數(shù)據(jù)字典用于對元數(shù)據(jù)值進(jìn)行枚舉定義和描述,若元數(shù)據(jù)值在數(shù)據(jù)字典中存在定義,則判定該值有效,否則判定為無效或錯誤。因此,在模板的設(shè)計(jì)階段需要進(jìn)行細(xì)致的資料收集和整理工作,確保每一個可能出現(xiàn)的元數(shù)據(jù)值記錄在數(shù)據(jù)字典中。表1描述的就是水道地形圖資料對應(yīng)的數(shù)據(jù)字典,它包含了水道名、水道位置、坐標(biāo)系統(tǒng)、高程系統(tǒng)、比例尺等定義好的枚舉模板。
表1 數(shù)據(jù)字典示例
2)錄入信息檢驗(yàn)設(shè)計(jì)。在數(shù)據(jù)字典建立完成后,利用Excel自帶的數(shù)據(jù)有效性驗(yàn)證及函數(shù)(如vlookup等),可以方便地將單元格的數(shù)據(jù)來源設(shè)置為數(shù)據(jù)字典中對應(yīng)屬性的列名,并對選擇或錄入的元數(shù)據(jù)進(jìn)行關(guān)聯(lián)和約束驗(yàn)證。如圖2所示,“水道名稱”單元格的數(shù)據(jù)來源為數(shù)據(jù)字典表中的名稱為“全部水道”一列單元格中的數(shù)據(jù)項(xiàng),即當(dāng)輸入的水道名稱為數(shù)據(jù)字典中所列出的水道名稱時,模版判斷屬性值輸入正確。
圖2 枚舉型數(shù)據(jù)填報(bào)設(shè)計(jì)
對于更加復(fù)雜的填報(bào)信息檢驗(yàn),通過Excel的公式和腳本不能完全滿足需求。例如,元數(shù)據(jù)A若填報(bào)了某值,元數(shù)據(jù)B就不能填報(bào)某值這類多個元數(shù)據(jù)間有復(fù)雜邏輯關(guān)聯(lián)的值。對于這種類型的信息檢驗(yàn),通過Excel的VBA接口進(jìn)行編程開發(fā)來實(shí)現(xiàn)。
錄入人員通過預(yù)處理編輯平臺完成編輯和檢驗(yàn)后,將文件保存形成.xls文件即可轉(zhuǎn)入下一步數(shù)據(jù)導(dǎo)入工作。
3.2 批量導(dǎo)入程序
批量導(dǎo)入程序的作用是,讀取預(yù)處理編輯平臺的xls成果文件,將數(shù)字資料批量自動寫入數(shù)據(jù)庫并進(jìn)行入庫校驗(yàn)。因此對這一程序有3點(diǎn)主要要求:一是自動化程度高,除了填寫必要的數(shù)據(jù)庫訪問驗(yàn)證信息外,基本不需要其他操作;二是運(yùn)行穩(wěn)定、速度快,能夠支持大批量數(shù)據(jù)的快速錄入;三是容錯處理強(qiáng),在出現(xiàn)批量導(dǎo)入過程中網(wǎng)絡(luò)斷開、數(shù)據(jù)庫寫入失敗等異常情況發(fā)生后,能通過數(shù)據(jù)庫回退等技術(shù)保證數(shù)據(jù)庫內(nèi)容的完整性。
經(jīng)過分析,研發(fā)一個獨(dú)立的批量導(dǎo)入程序來實(shí)現(xiàn)上述要求較為合適。最終,選擇采用C#來進(jìn)行開發(fā)。
這是因?yàn)镃#作為一種面向?qū)ο笸泄苷Z言,具有安全、穩(wěn)定、高效的特點(diǎn),對于Excel和Oracle的訪問也有強(qiáng)大的接口。
1)xls讀取接口設(shè)計(jì)。對于xls文件的訪問,一般有OleDb、COM組件或者第三方訪問組件這幾種方式。OleDb方式讀取數(shù)據(jù)的時候不太靈活,對于含有表頭的Sheet不易處理,對于含有公式的單位格讀取也存在問題。COM組件是通過調(diào)用Excel主程序來對xls文件進(jìn)行訪問,缺點(diǎn)在于Excel 版本眾多,編輯環(huán)境和導(dǎo)入環(huán)境不易統(tǒng)一,且外部調(diào)用Excel Application難以完成Excel進(jìn)程,可能造成程序的死鎖或崩潰。
經(jīng)過研究發(fā)現(xiàn)第三方開源組件NPOI對于Excel文件的讀取有以下優(yōu)點(diǎn):①基于.NET類庫,更容易和C#融合使用;②直接支持訪問標(biāo)準(zhǔn)的Excel格式文件,獨(dú)立性強(qiáng);③經(jīng)過大量用戶的使用檢驗(yàn),穩(wěn)定性和兼容性較好。綜合以上因素,選取NPOI組件來進(jìn)行Excel讀寫開發(fā)。
2)數(shù)據(jù)庫寫入接口設(shè)計(jì)。數(shù)字資料管理系統(tǒng)使用了Oracle數(shù)據(jù)庫,對其訪問即可使用.NET自帶的ADO.Net組件,也可以使用System.Data.OracleClient接口訪問,也可以使用Oracle提供的Oracle.DataAccess接口??紤]到Oracle自帶的接口能提供的功能、效率、穩(wěn)定性更優(yōu),因此采用此接口完成數(shù)據(jù)庫寫入操作。在寫入操作完成后,還要對寫入的數(shù)據(jù)進(jìn)行一次核查,防止寫入失敗或者未完全寫入。通過引入OracleTransaction事務(wù)操作機(jī)制,可以在檢測到異常時完全撤銷所有的寫入操作,保障了數(shù)據(jù)入庫的正確性、完整性。
以一個批次的水道地形圖為例,表2以及圖3、4演示了整個批量錄入過程:
1) 在基于Excel的預(yù)處理環(huán)境中編輯好相關(guān)元數(shù)據(jù)信息,并保存為xls文件。
表2 填寫預(yù)處理信息
2)通過批量導(dǎo)入程序登錄數(shù)字資料管理系統(tǒng)數(shù)據(jù)庫。
圖3 數(shù)據(jù)庫連接
3) 將需要錄入的數(shù)據(jù)批量導(dǎo)數(shù)據(jù)庫并進(jìn)行校驗(yàn)。
圖4 批量導(dǎo)入及校驗(yàn)
實(shí)驗(yàn)結(jié)果顯示,上傳過程中有異常會進(jìn)行提示和操作回滾,能自動將表格中的內(nèi)容準(zhǔn)確無誤地上傳至數(shù)據(jù)庫相關(guān)記錄表,并在成果資料管理系統(tǒng)中正確使用。
本研究提出的基于預(yù)處理方式的數(shù)據(jù)文件快速錄入方法具有易操作、穩(wěn)定性好、效率高等特點(diǎn),除了批量操作多項(xiàng)數(shù)據(jù)外,可有效檢驗(yàn)數(shù)據(jù)的完整性,提高了成果錄入過程中的信息化和智能化水平,為海量航道信息資源管理下的信息快速錄入提供了有效的解決思路。
[1] 祝昕剛.用Excel VBA編制變形監(jiān)測數(shù)據(jù)處理程序[J].地理空間信息, 2011, 9(3):170-172
[2] 閆宗梅. Excel公式與函數(shù)的教學(xué)研究與探討[J].學(xué)園:學(xué)者的精神家園, 2013,(5):166-167
[3] 李雁敏.并發(fā)訪問ORACLE數(shù)據(jù)庫的數(shù)據(jù)死鎖分析和解決措施[J].內(nèi)蒙古科技與經(jīng)濟(jì),2012,(13):79-80
[4] 崔賽英. Excel函數(shù)學(xué)習(xí)方法與技巧[J].電腦知識與技術(shù), 2012, 8(18):4 428-4 431
[5] 曾實(shí). ORACLE數(shù)據(jù)庫優(yōu)化技術(shù)研究[J].科技信息, 2011(27):62
[6] 昌兆文,劉湖平,曾紹軍.基于NPOI導(dǎo)出Excel文件的研究與實(shí)現(xiàn)[J].中國管理信息化, 2013(15):93
[7] 劉惠祥.測繪資料檔案管理系統(tǒng)[J].江西測繪, 2010(3):61
P208
B
1672-4623(2017)02-0047-03
10.3969/j.issn.1672-4623.2017.02.015
2015-03-24。
伍莉,工程師,研究方向?yàn)闇y繪數(shù)據(jù)管理及應(yīng)用。