蘭天 張榮慶 梁乾 漢中職業(yè)技術(shù)學(xué)院
關(guān)鍵字:Excel 協(xié)同匯總 Nodejs
微軟公司于2003年已經(jīng)為Excel2003提供了共享工作簿的功能,但該功能極不完善,表現(xiàn)為有兩項主要制約,協(xié)同編輯者必須事先約定自身所應(yīng)當負責(zé)編輯的row、column或者cell,以及它僅能實現(xiàn)局域網(wǎng)共享編輯。
Boban Mathew, Thomas John, Dagny Evans于2007年在他們的專利申請公開說明書US20070220417A1中,提出來一個網(wǎng)絡(luò)共享云編輯的模型和方法,該模型采用C/S架構(gòu),每一位Client協(xié)作者,都與Server計算機簡歷Web會話,并從Server中下載一個副本。Server則接收Client協(xié)作者編輯文檔的請求, 該文檔具有特定的文檔類型并存儲在Server計算機上,通過這種方式來實現(xiàn)Excel云編輯。
Michael L. Milton 2006年在他的專利US20070219956A1中提出關(guān)閉用于分析在客戶端計算機上創(chuàng)建的電子表格的單個對象并發(fā)送整個工作簿、其二進制文件和主庫中服務(wù)器計算機上存儲的對象的方法。下載的對象可以使用電子表格應(yīng)用程序的本機工具 (通常為Excel) 進行修改, 并以不同的名稱重新存儲在主庫中, 并將元數(shù)據(jù)中列出的對象作為所有者進行更改。用戶可以輸入自己的元數(shù)據(jù)。對象的自動命名可將對象與其在創(chuàng)建它們的工作簿中的原始位置分離。
國內(nèi)有“格子啦”、“班牛”等云表格編輯平臺,并且金山軟件旗下的WPS手機版還提供云編輯的手機小程序,可以實現(xiàn)多人共享云編輯,這些云編輯都需要協(xié)作者向管理員申請編輯權(quán)限,才可以進行云編輯,因而會損失一定效率。
徐強、王振江在他們2012出版的《云計算應(yīng)用開發(fā)實踐》中提出了Excel VBA宏與Symphony 相結(jié)合的方式實現(xiàn)云協(xié)同。實際上是Windows共享工作簿的一種實現(xiàn)。與此方案類似的還有,陳秀峰2003在《軟件世界》雜志中發(fā)表的《Excel共享全攻略》,張迎新2004年在《電腦應(yīng)用文萃》雜志中發(fā)表的《Excel多人共享攻略》。
編者主要考慮不改變用戶固有的使用習(xí)慣,不以任何形式侵犯其他軟件的版權(quán),所以沒有做任何Office Excel插件,另外需要具有跨平臺,可運行在Windows、Mac OS、Linux等多個操作系統(tǒng)的特性。同時,拋棄了傳統(tǒng)的C-S架構(gòu),在Client端無需配置任何插件,所有的匯總、比對、過濾、排序、檢驗數(shù)據(jù)都在Server端完成,因而協(xié)同Excel填報者無需使用和了解本軟件解決方案,僅僅Excel匯總者需要了解本軟件使用方法。為了達到以上目的,編者采用Node.js作為框架,JavaScript為主要編程語言,設(shè)計了Excel協(xié)同匯總軟件。在Excel文件處理方面主要使用了node-xlsx庫,將原本的Excel文件轉(zhuǎn)化為文本文件,在使用fs庫、line-reader庫、path庫、readline庫、iconv-lite庫來處理文本文件,將每一個文本相同部分剔除,保留差異部分。再將剔除的相同部分與差異部分重新組成一個匯總后的Excel文件。本軟件的創(chuàng)新之處在于先進的容錯機制,允許相同部分在前后空格、單元格格式、以及合并單元格與否等細節(jié)的不同。
Excel協(xié)同匯總軟件的構(gòu)造主要由10個模塊組成,使用JavaScript編寫,分別為 contrast.js、excel.js、export.js、initialize.js、kill.js、killfinalfile.js、outcome.js、vs.js、vs00.js、vs0.js。
另外使用C++與HTML和Node.js的express模塊與multer模塊相結(jié)合編寫了一個圖形圖像化的網(wǎng)頁控制臺,可以在Windows平臺下直接點擊kongzhitai.exe進入網(wǎng)頁控制臺,在Linux和MacOS下可以通過瀏覽器登入網(wǎng)頁控制臺。除此之外,本軟件對有一定計算機基礎(chǔ)的使用者,在各平臺之下提供命令行來執(zhí)行,可以精確地控制每一個比對、過濾、排序、檢驗、匯總數(shù)據(jù)的步驟。另外對于記不住命令行命令,又不想使用圖形界面的用戶,在Windows平臺下提供了命令批處理來執(zhí)行本程序。
Excel協(xié)同匯總已經(jīng)取得軟件著作權(quán),發(fā)明專利也在申請當中,本軟件的設(shè)計邏輯總結(jié)起來可以用以下的流程圖來表示。
