[{"id":"7720ca38-fc98-4fd8-a3a5-3c0e730c3c72","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"247ded67-b050-4436-be40-fe7b0eeabef7","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"9a8c377f-1f1e-476e-b487-c2339da9bed3","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"5e8e6db2-89b9-4184-bbdc-301ee676869e","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"e04b598e-b0d8-4054-bdac-5143d90b3d51","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"edb028d0-a8cc-42b2-acda-42a5515729f0","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"2adde444-20a6-43d7-8896-2b445877327a","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"6ab8ced2-6c7a-41b6-b861-ba066bd40f40","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"0c34aedd-80a3-470b-a0f6-c327a4346be7","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"717a5892-fa23-499b-a61d-cff228943aaf","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"bd9be971-69fc-4793-ad6d-234be7a93048","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"a1e8d38f-43d8-4b3e-b747-3fbf7656fcd9","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"d6995fdf-76ee-421f-9e7a-3fb324d14bbb","tags":[{"product":null,"links":null,"id":"2f522515-8c88-4017-855d-905bc4b0ea3c","name":"Upd","color":"Blue","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"64fa3155-4543-4acd-83b7-f9860fd46673","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"698413bd-0b16-4287-baec-644d98a411d1","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]},{"id":"7e4393a0-21ef-438b-981b-325b64db5baa","tags":[{"product":null,"links":null,"id":"6c1a6899-1b88-404c-9a73-4a0c6c9090a3","name":"New","color":"Red","productId":"66a69675-7df9-45b2-867a-4ab2613535fa"}]}]
SpreadJSでは、セルをロックして、シートを保護することで、他のユーザーがデータを変更、移動、または削除できないようにすることができます。 ただし、ロックしたセルのデータはコピーできます。
ワークシートを保護するには、 isProtected オプションをtrueに設定します。セルのロックまたはロック解除を実現するには、lockedメソッドを使用します。
ユーザーが保護されたワークシートの特定のセルを編集できるようにするには、 locked メソッドを falseに設定します。
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;
保護されたワークシートの特定の範囲のセルをロックするには、次の手順を実行します。
カスタムスタイルを作成し、 locked フィールドを falseに設定して、すべてのセルのロックを解除します。
読み取り専用にするセル範囲を個別にロックします。
// ワークブックとワークシートを構成します。
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で使用可能なさまざまな保護オプションを有効にすることができます。
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;
注:保護オプションallowInsertRows、allowInsertColumns、allowDeleteRows、allowDeleteColumnsは、ユーザーインタフェース上で操作を実行する場合のみに適用されます。つまり、コンテキストメニューでの、行および列の挿入および削除コマンドのみが制限されます。
デフォルトでは、保護されたワークシートにアウトライン行や列のグループを展開または折りたたむことができません。この場合、invalidOperationイベントが発生します。また、次に示すように、このイベントを使用してアラートを表示することもできます。
// 警告メッセージを設定します。
spread.bind(GC.Spread.Sheets.Events.InvalidOperation, (e, args) => {
if(args.invalidType === GC.Spread.Sheets.InvalidOperationType.groupProtected){
args.message="保護されたワークシートでは、展開または折りたたみ操作は許可されていません。";
alert(args.message)
}
});