[{"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"}]}]
        
(Showing Draft Content)

シートの保護とセルのロック

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;

保護されたワークシートでセル範囲をロックする

保護されたワークシートの特定の範囲のセルをロックするには、次の手順を実行します。

  1. カスタムスタイルを作成し、 locked フィールドを falseに設定して、すべてのセルのロックを解除します。

  2. 読み取り専用にするセル範囲を個別にロックします。

// ワークブックとワークシートを構成します。
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)
    }
});