请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

tsjlbobo

初级会员

9

主题

18

帖子

281

积分

初级会员

积分
281
tsjlbobo
初级会员   /  发表于:2018-3-13 14:53  /   查看:4703  /  回复:5
本帖最后由 tsjlbobo 于 2018-3-14 11:31 编辑

不加载Excel时保护功能正常,一加载Excel保护功能就不行了,有兄弟帮忙看一下吗?谢谢!
  1. <body>
  2.     <div class="content-container">
  3.         <div id="inner-content-container">
  4.             <table id="formulaBar" style="width: 100%;">
  5.                 <tbody>
  6.                     <tr>
  7.                         <td style="vertical-align:top;">
  8.                             <input type="text" id="positionbox" disabled="disabled" style="/*text-align: center;*/ padding: 5px; border-width: 0; background-color: rgb(235, 235, 228); height: 36px;">
  9.                         </td>
  10.                         <td style="width: 100%; border-left: 1px solid #ccc;">
  11.                             <div id="formulabox" contenteditable="true" spellcheck="false" style="overflow: hidden; height: 36px; width: 100%; padding: 9px;"></div>
  12.                             <div class="vertical-splitter ui-draggable" id="verticalSplitter"></div>
  13.                         </td>
  14.                     </tr>
  15.                 </tbody>
  16.             </table>
  17.             <div class="spread-container" id="controlPanel" style="height: 600px; bottom: 0;">
  18.                 <div id="ss" style="height: 100%; border: 1px solid #ddd;"></div>
  19.             </div>
  20.         </div>
  21.     </div>

  22. <div style="margin-bottom:100px;">
  23.     <input type="button" value="导出excel" id="download" onclick="exportToExcel();">
  24.     <input id="chkProtectSheet" type="checkbox" />
  25.     <label for="chkProtectSheet">Protect Sheet</label>
  26.     <input id="chkSelectUnlockedCells" type="checkbox" checked="checked" />
  27.     <label for="chkSelectUnlockedCells">Select unlocked cells</label>
  28.     <div class="option-row">
  29.         <input id="chkAllowResizeRows" type="checkbox" />
  30.         <label for="chkAllowResizeRows">Resize rows</label>
  31.         <input id="chkAllowResizeColumns" type="checkbox" />
  32.         <label for="chkAllowResizeColumns">Resize columns</label>
  33.     </div>
  34.     <div class="option-row">
  35.         <input type="button" value="Set" id="setProtectionOptions" style="width:100px;" />
  36.         <label style="width: 60%;">Select the Protection options and then click Set</label>
  37.     </div>
  38.    
  39. </div>
  40. </body>
复制代码
  1. $(document).ready(function() {
  2.     var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"), {
  3.         sheetCount: 1
  4.     });
  5.     initSpread(spread);
  6.     TestSpread(spread);
  7. });

  8. function initSpread(spread) {
  9.     fbx = new spreadNS.FormulaTextBox.FormulaTextBox(document.getElementById('formulabox'));
  10.     fbx.workbook(spread);
  11.    

  12.     GC.Spread.Common.CultureManager.culture("zh-cn");
  13.     var excelIo = new GC.Spread.Excel.IO();
  14.     var excelFilePath = '/全自动变比测试仪测试版.xlsx';
  15.     var xhr = new XMLHttpRequest();
  16.     xhr.open('GET', excelFilePath, true);
  17.     xhr.responseType = 'blob';
  18.     xhr.onload = function (e) {

  19.         if (this.status == 200) {
  20.             var blob = this.response;

  21.             // convert Excel to JSON

  22.             excelIo.open(blob, function (json) {

  23.                 var workbookObj = json;

  24.                 spread.fromJSON(workbookObj);
  25.                 spread.suspendPaint();
  26.                 //spread.removeSheet(0);
  27.                 spread.setActiveSheetIndex(1);
  28.                 spread.resumePaint();
  29.             }, function (e) {
  30.                 // process error
  31.                 alert(e.errorMessage);

  32.             }, {});
  33.         }

  34.     };

  35.     xhr.send();
  36. }

  37. function TestSpread(spread) {
  38.     var sheet = spread.getActiveSheet();
  39.     var option = {
  40.         allowFilter: true,
  41.         allowSort: false,
  42.         allowResizeRows: true,
  43.         allowResizeColumns: false,
  44.         allowEditObjects: false
  45.     };
  46.     sheet.options.protectionOptions = option;
  47.     sheet.options.isProtected = true;

  48.     option = sheet.options.protectionOptions;
  49.     $("#chkProtectSheet").prop("checked", sheet.options.isProtected);
  50.     $("#chkSelectLockedCells").prop("checked", option.allowSelectLockedCells);
  51.     $("#chkSelectUnlockedCells").prop("checked", option.allowSelectUnlockedCells);
  52.     $("#chkAllowSort").prop("checked", option.allowSort);
  53.     $("#chkAllowFilter").prop("checked", option.allowFilter);
  54.     $("#chkAllowResizeRows").prop("checked", option.allowResizeRows);
  55.     $("#chkAllowResizeColumns").prop("checked", option.allowResizeColumns);
  56.     $("#chkAllowEditObjects").prop("checked", option.allowEditObjects);

  57.     $("#chkProtectSheet").click(function() {
  58.         var sheet = spread.getActiveSheet();
  59.         var value = $(this).prop("checked");
  60.         sheet.options.isProtected = value;
  61.     });

  62.     $("#setProtectionOptions").click(function() {
  63.         var option = {
  64.             allowSelectLockedCells: $("#chkSelectLockedCells").prop("checked"),
  65.             allowSelectUnlockedCells: $("#chkSelectUnlockedCells").prop("checked"),
  66.             allowSort: $("#chkAllowSort").prop("checked"),
  67.             allowFilter: $("#chkAllowFilter").prop("checked"),
  68.             allowResizeRows: $("#chkAllowResizeRows").prop("checked"),
  69.             allowResizeColumns: $("#chkAllowResizeColumns").prop("checked"),
  70.             allowEditObjects: $("#chkAllowEditObjects").prop("checked")
  71.         };

  72.         var sheet = spread.getActiveSheet();
  73.         sheet.options.protectionOptions = option;
  74.     });
  75. }
复制代码


5 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-3-13 18:32:53
沙发
您好:
全自动变比测试仪测试版.xlsx 这个Excel我这边没有
回复 使用道具 举报
tsjlbobo
初级会员   /  发表于:2018-3-14 08:39:25
板凳
ClarkPan 发表于 2018-3-13 18:32
您好:
全自动变比测试仪测试版.xlsx 这个Excel我这边没有

你好,这个excel你可以随意换成其他excel,主要的问题是加载后没法实现表单锁定,就是不能拖拽行和列的布局!谢谢!
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-3-14 10:16:38
地板
我这边试了一下没问题啊,实现表单锁定只要勾选 protect sheet就可以了,如果您那边不行请提供您加载的Excel文件
回复 使用道具 举报
tsjlbobo
初级会员   /  发表于:2018-3-14 10:46:02
5#
ClarkPan 发表于 2018-3-14 10:16
我这边试了一下没问题啊,实现表单锁定只要勾选 protect sheet就可以了,如果您那边不行请提供您加载的Exce ...

你好,可以了,万分感谢!
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-3-14 10:54:46
6#
好吧。。。那就结帖了,有什么问题欢迎另开新帖进行询问。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部