SpreadJSでは、セルをロックして、シートを保護することで、他のユーザーがデータを変更、移動、または削除できないようにすることができます。 ただし、ロックしたセルのデータはコピーできます。
ワークシートを保護するには、isProtectedオプションをtrueに設定します。セルのロックまたはロック解除を実現するには、locked メソッドを使用します。
ユーザーが保護されたワークシートの特定のセルを編集できるようにするには、lockedメソッドを falseに設定します。
JavaScript |
コードのコピー
|
---|---|
sheet.getCell(1,1, GC.Spread.Sheets.SheetArea.viewport).locked(false); sheet.setValue(1,1,"unLocked"); sheet.getRange(-1,3, -1, 1).locked(false); sheet.getRange(5, -1, 1, -1).locked(false); sheet.options.isProtected = true; |
保護されたワークシートの特定の範囲のセルをロックするには、次の手順を実行します。
JavaScript |
コードのコピー
|
---|---|
// ワークブックとワークシートを構成します。 var spread = new GC.Spread.Sheets.Workbook("ss"); var sheet = spread.getActiveSheet(); // スタイルを使用してワークシートのすべてのセルのロックを解除します。 let style = new GC.Spread.Sheets.Style(); style.locked = false; // シート内のすべてのセルのデフォルトスタイルとしてスタイルを設定します。 sheet.setDefaultStyle(style); // 読み取り専用にするセル範囲を個別にロックします。 new GC.Spread.Sheets.CellRange(sheet, 0, 0, 13, 4).locked(true); // 保護するシートを設定します。 sheet.options.isProtected = true; |
options.protectionOptionsプロパティを使用すると、ユーザーに変更を許可する領域を指定できます。特定の領域に対し、行または列のサイズ変更、ドラッグ、挿入、削除などを許可または禁止できます。
isProtectedオプションをtrueに設定すると、以下のプロパティが有効になり、それぞれ次のような効果が得られます。
プロパティ | 説明 |
---|---|
allowDragInsertRows | 行の挿入時にドラッグ操作を実行できるようにします。 |
allowDragInsertColumns | 列の挿入時にドラッグ操作を実行できるようにします。 |
allowInsertRows | 行を挿入できるようにします。 |
allowInsertColumns | 列を挿入できるようにします。 |
allowDeleteRows | 行を削除できるようにします。 |
allowDeleteColumns | 列を削除できるようにします。 |
allowSelectLockedCells | ロックされたセルを選択できるようにします。 |
allowSelectUnlockedCells | ロックされていないセルを選択できるようにします。 |
allowSort | 範囲の並べ替えが行えるようにします。 |
allowFilter | 範囲のフィルタ処理が行えるようにします。 |
allowEditObjects | フローティングオブジェクトを編集できるようにします。 |
allowResizeRows | 行をサイズ変更できるようにします。 |
allowResizeColumns | 列をサイズ変更できるようにします。 |
allowOutlineRows | 行グループを展開または折りたたむことができるようにします。 |
allowOutlineColumns | 列グループを展開または折りたたむことができるようにします。 |
isProtectedオプションをfalseに設定すると、上記の保護オプションはすべて無効となります。
ワークシートを保護し、Spread JSで使用可能なさまざまな保護オプションを有効にすることができます。
JavaScript |
コードのコピー
|
---|---|
var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss")); var sheet = spread.getActiveSheet(); sheet.options.isProtected = true; sheet.options.protectionOptions.allowDeleteRows = true; sheet.options.protectionOptions.allowDeleteColumns = true; sheet.options.protectionOptions.allowInsertRows = true; sheet.options.protectionOptions.allowInsertColumns = true; sheet.options.protectionOptions.allowDragInsertRows = true; sheet.options.protectionOptions.allowDragInsertColumns = true; sheet.options.protectionOptions.allowOutlineColumns = true; |
デフォルトでは、保護されたワークシートにアウトライン行や列のグループを展開または折りたたむことができません。この場合、invalidOperationイベントが発生します。また、次に示すように、このイベントを使用してアラートを表示することもできます。
JavaScript |
コードのコピー
|
---|---|
// 警告メッセージを設定します。 spread.bind(GC.Spread.Sheets.Events.InvalidOperation, (e, args) => { if(args.invalidType === GC.Spread.Sheets.InvalidOperationType.groupProtected){ args.message="保護されたワークシートでは、展開または折りたたみ操作は許可されていません。"; alert(args.message) } }); |