轉帖|使用教程|編輯:莫成敏|2020-05-06 10:00:46.970|閱讀 660 次
概述:SpreadJS 是一款基于 HTML5 的純前端電子表格控件,兼容 450 種以上的 Excel 公式,具有“高性能、跨平臺、與 Excel 高度兼容”等產品特性。本文整理了表單保護相關的典型問題。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
SpreadJS 是一款基于 HTML5 的純前端電子表格控件,兼容 450 種以上的 Excel 公式,具有“高性能、跨平臺、與 Excel 高度兼容”等產品特性。在帶來親切的 Excel 使用體驗的同時,滿足 Web Excel 組件開發、表格文檔協同編輯、數據填報、Excel 類報表設計等業務場景,極大降低了企業研發成本和項目交付風險。
表單保護一直都是Excel的一個常用功能,在SpreadJS中也是如此,用戶經常通過設置表單保護來進行填報權限的控制。本文整理了表單保護相關的典型問題。
1、SpreadJS表單保護的機制:
表單保護的機制和Excel一樣需要同時設定鎖定(locked)和保護(Protect)兩個狀態為true,才能讓單元格禁止編輯。
2、所有單元格都不能編輯
這里的locked屬性默認所有的單元格的locked屬性都是true,換而言之在默認狀態下,只要將Protect的狀態設置為true,就可以做到所有單元格都不能編輯。
否則則需要將所有的單元格locked屬性設置為true后再設置表單保護。
3、設置默認單元格的鎖定狀態為false
var defaultStyle = sheet.getDefaultStyle(); defaultStyle.locked = false; sheet.setDefaultStyle(defaultStyle);
4、復制取消保護單元格之后復制后的單元格為保護狀態
表單保護的狀態下是無法復制locked屬性的,非表單保護狀態下可以復制。
解決這個問題的辦法是,在事件中copyto之前先將表單保護的狀態設置為false,然后copyto結束后再設置為true
document.getElementById('btnCopy').addEventListener('click', function() { sheet.options.isProtected = false; sheet.copyTo(5, 4, 5, 7, 7, 1, spreadNS.CopyToOptions.all); sheet.options.isProtected = true; });
5、sheet頁密碼保護相關
參考這篇文章
6、保護工作簿里面的幾行
如果我們不希望單元格被編輯,只要給單元格設置一個locked 為true的style即可,如果整行都不希望被編輯,使用setStyle方法時第二個參數設置為-1,那么這一行都被locked了。整列則反之,第一個參數為-1
設置完之后再設置sheet.options.isProtected = true;
7、保護之后允許調整行款列高
sheet.options.protectionOptions.allowResizeRows = true; sheet.options.protectionOptions.allowResizeColumns = true;
8、鎖定的單元格不允許點擊
sheet.options.protectionOptions.allowSelectLockedCells = false;
本文內容到這里就結束了,感興趣的朋友可以下載SpreadJS試用版免費體驗~
相關內容推薦:
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: