天天看點

如何實作Excel表格文檔版本管理?SpreadJS有妙招!

作者:慧都科技

SpreadJS結合40餘年專業控件技術和在電子表格應用領域的經驗而推出的純前端表格控件,基于 HTML5,相容 450 多種 Excel 公式,具備“高性能、跨平台、與 Excel 高度相容”的産品特性,備受華為、明源雲、遠光軟體等知名企業青睐,被中國軟體行業協會認定為“中國優秀軟體産品”。SpreadJS在界面和功能上與 Excel 高度類似,但又不局限于 Excel,而是為企業資訊化系統提供 表格文檔協同編輯、 資料填報 和 類 Excel 報表設計 的應用場景支援,極大降低了企業研發成本和項目傳遞風險。

SpreadJS官方最新版免費下載下傳試用,曆史版本下載下傳,線上文檔和幫助檔案下載下傳-慧都網

什麼是版本管理?

在介紹版本管理之前,我們先設想一個場景:

某天上司要求我們做一份表格,需要統計公司所有員工的餐費資料用于報帳,于是我們統計了所有的餐費資料,整理為了一個表格發送給上司,美滋滋的準備下班。

這個時候,上司說,試用期内的員工餐費資料需要單獨處理,分開報帳,于是我們又重新篩選出了試用期内員工資料,重新做了表格。

接着上司又說,經過财務部讨論,最終還是決定一起報帳了。

我們可能就傻眼了,已經将表格内試用期内員工資料删除了,再一個個添加進去也太麻煩了!

如果我們之前将統一報帳的表格另外儲存就好了,這樣就可以直接拿來使用了。

如何實作Excel表格文檔版本管理?SpreadJS有妙招!

當你産生了這種念頭,說明已經有了版本管理的需求。

版本管理其實就是一種記錄文檔變化的方式,用于儲存特定版本的内容。當我們需要檢視某一版本的文檔時,再具體檢視即可,如果需要對其修改,再另存為一個新版本的文檔。

按照這樣的思路,我們延續剛才的場景:

此時我們電腦中已經儲存了多個版本文檔:費用update1.xlsx、費用update2.xlsx、費用update3.xlsx…….

随着員工資訊的變動,文檔的個數也在逐個遞增。有時候一天内入職/離職多個同僚,這個表會更新好幾遍;還會出現因粗心儲存錯了,當日的資料又得重新再填的問題……

随着困難逐漸暴露出來,我們終于意識到靠人工去維護各個版本的文檔還是很困難的。

文檔版本管理的技術難點

上升到企業角度,文檔管理工作更是至關重要。由于企業文檔管理工作不到位造成的經濟損失或信用危機更是屢見不鮮。在企業文檔版本管理中,常見的問題如下:

1、文檔版本混亂

正常的文檔管理多是通過區分檔案名的方式來判斷的,正如前面所述,當檔案頻繁修改、版本數量不斷增多時,極易出現版本混亂、查找困難等問題。在需要共享檔案時,也易出現發送錯誤版本的可能性。

2、文檔版本沖突

當某位同僚修改文檔後,需要将這個檔案共享給所有同僚,并且其他同僚也需要同步修改,以保證文檔的一緻性。如果多位同僚同時做出修改,整個同步過程将非常複雜且難以人工判斷,極易出現遺漏、修改錯誤等問題

3、資料安全無法保證

多人維護同一個檔案時,編輯權限難以對應具體角色,修改過程中容易出現編輯重複、編輯錯誤、甚至于資料丢失等問題。

4、操作記錄難以追溯

在最後一位同僚完成修改行為之後,我們拿到的是一份最新文檔。但是從文檔中無法判斷出某一個資料的修改是由哪位同僚、什麼時間、如何修改的。這就造成如果出現問題,容易互相推诿責任。

企業文檔管了解決方案

慶幸的是,随着現在網際網路技術的發展,已經有成熟的技術可以幫助我們來解決這些困難。本文基于純前端類Excel表格控件SpreadJS為例,提供一個解決版本管理的優雅設計和實作思路。

SpreadJS是一款可嵌入Web系統的純前端類Excel的表格控件,在純前端的運作環境下,可以雙向相容90%以上Excel原生功能,并保持了類Excel的操作體驗,可以讓熟悉Excel的使用者無縫銜接,無需教育訓練即可上手使用。

下圖我們所看到的就是使用SpreadJS做的一個線上文檔管理系統示例demo:

如何實作Excel表格文檔版本管理?SpreadJS有妙招!

使用者可直接建立表格,也可以加載本地的excel檔案,SpreadJS都有提供相應的接口。

同樣的,也提供了導出json或excel的功能,可以根據實際業務需求儲存至服務端或資料庫。

建立或加載檔案後,我們就可以借助SpreadJS來做一些編輯或修改行為。

如何實作Excel表格文檔版本管理?SpreadJS有妙招!

上圖所示是基于SpreadJS二次開發實作的元件化線上表格編輯器,可以看到整體的設計風格是與Excel高度類似的,也更符合使用者的操作習慣。可以通過操作工具欄提供的内置功能,或者基于SpreadJS現有API進行二次開發,編輯修改文檔。

SJS提供了豐富的指令和事件來監聽修改行為,在本demo中,每做一次修改之後,使用SpreadJS的toJSON方法進行資料的導出,來記錄每一次的變動情況。

如何實作Excel表格文檔版本管理?SpreadJS有妙招!

如果有多個修改行為,可以在這些行為完成之後,對此文檔進行導出儲存,來作為一個新的版本。

如何實作Excel表格文檔版本管理?SpreadJS有妙招!

相應的,如果想還原至某一個版本或記錄,就可以使用fromJSON方法加載這個版本對應的資料進行導入。

除此之外, SpreadJS在權限設計方面也給予了開發者很大的自由度,作為一個前端控件産品,開發者可以結合實際業務需求,對不同權限給予相應的可見性、檔案加載限制。并且,SpreadJS提供了相應的接口,可以設定表單、行列等元素是否可見、利用表單保護功能,可以對單元格的編輯權限進行限制;也可以根據使用者實際需求自定制工具欄按鈕的可用狀态等。豐富靈活的API接口,滿足了更多使用者的定制化需求。

總體來說,在企業文檔管理上,SpreadJS發揮的優勢如下:

1、文檔版本有序管理

使用SpreadJS建構的版本管理系統可以有效解決文檔版本混亂問題,借助SpreadJS提供API,可以對文檔生成時機精确判别,自動生成版本文檔。

2、避免文檔内容沖突

借助SpreadJS可建立統一的檔案管理平台,不同使用者可線上通路同個檔案,實作檔案間的傳遞或同步,避免多人編輯出現的内容沖突問題。

3、權限控制保證資料安全

利用web項目的開發優勢和SpreadJS提供的相關API,可對不同角色設定相應操作權限,滿足部分單元格禁止編輯、檔案隻讀、審批上報等需求,保證檔案資料的安全性。

4、降低成本提升開發效率

SpreadJS兼具 “高性能、跨平台、與 Excel 高度相容”的産品特性,結合配套後端産品GcExcel可快速開發滿足企業需求的文檔版本管理系統,保證檔案版本品質的同時,也提升了團隊開發效率,降低企業開發成本。

本文内容源自葡萄城

繼續閱讀