本文由葡萄城技術團隊發佈。轉載請註明出處:葡萄城官網,葡萄城爲開發者提供專業的開發工具、解決方案和服務,賦能開發者。
前言
隨着雲計算和團隊協作的興起,協同編輯成爲了許多企業和組織中必不可少的需求。通過協同編輯,多個用戶可以同時對同一個文檔進行編輯和更新,從而提高工作效率和協作能力。本文小編就將爲大家介紹如何使用React+SpringBoot簡單的開發一個協同編輯的表格文檔。
環境準備
用到的開發工具:
前端開發工具:VSCode
後端開發工具:IDEA
用到的組件:
葡萄城公司前端表格控件SpreadJSV14.0.0和SpreadJS在線表格編輯器react組件版
葡萄城公司服務端表格組件GrapeCity Documents for Excel
實現步驟
1.搭建前端項目
首先,前端新建react項目,並按照下面圖所示引入SpreadJS以及設計器組件版的相關引用。
然後,集成在線表格編輯器react組件版。
這樣前端的準備工作就完成了。
2.搭建後端項目
後端的準備工作,首先安裝gradle作爲包管理器。當然,這裏也可以用其他工具來代替,例如maven,或者源生引入jar包的方式將需要用到的jar包引入進來。然後創建springboot工程配合搭建gradle引用GCExcel以及後面協同需要用到的websocket。
這樣後端的準備工作也完成了。
3.核心代碼的構建
3.1前端代碼
**首先是前端,**既然要做協同,那麼首先就要搭建websocket。
在react中使用websocket不需要引入其他庫,只需要創建一個公共組件,封裝一下websocket,接下來我們需要監聽前端發出的操作。這裏因爲在線表格編輯器本身將所有用戶可能做的操作全部做了封裝,所以省下了很多的功夫。
然後對命令再做一些簡單封裝:
緊接着將封裝過的命令發到服務端,之後通過websocket發同步指令:
當協同端通過websocket接收到請求的時候,通過onmessage方法做同步命令,這裏在協同端執行command之前需要先撤銷之前的監聽,避免再發送websocket導致死循環。在執行之後,再次添加監聽。
3.2後端代碼
這樣前端的核心內容就介紹完了,目前前端這樣做已經能做基本的協同操作了。
接下來是後端的相關核心代碼:
首先,後端搭建對應的websocket:
之後設置websocket的過期時間,當session關閉後5分鐘停止給該端口發送websocket請求:
3.3前後端交互
前端發送請求至後端:
後端接收請求後,根據請求在後端重寫對應的實現,demo中走了封裝使得結構上更加合理,方便重寫:
然後在後端GCExcel中加載同一個文檔並執行上述操作:
總結
使用SpreadJS+GcExcel開發一個協同編輯的表格文檔,可以實現多人同時編輯、即時保存和實時更新的功能。通過這種方式,可以提高團隊協作效率,確保數據的準確性和一致性。同時,SpreadJS和GcExcel提供了豐富的API和功能,可以滿足各種複雜的表格需求,爲用戶提供良好的使用體驗。總的來說,這種開發方式能夠爲企業帶來更高的工作效率和更好的用戶體驗。
擴展鏈接: