SpreadJS製品ヘルプ
シートの保護とセルのロック
SpreadJS > 開発者の手引き > 機能 > ユーザーインタフェースの管理 > シートの保護とセルのロック

Spread.Sheets では、ウィジェット内でシートを保護し、セルをロックすることができます。

シートを保護することで、セルの編集を禁止できます。特定のセルだけの編集をユーザーに許可するには、シートを保護してから、編集を許可するセルだけロック解除します。ロックしたセルのデータはコピーできます。

ワークシートを保護するには、isProtectedオプションをtrueに設定します。セルをロックするには、lockedメソッドを使用します。

options.protectionOptionsプロパティを使用すると、ユーザーに変更を許可する領域を指定できます。特定の領域に対し、行または列のサイズ変更、ドラッグ、挿入、削除などを許可または禁止できます。

isProtectedオプションをtrueに設定すると、以下のプロパティが有効になり、それぞれ次のような効果が得られます。

  1. allowDragInsertRows:デフォルト値は未定義。このオプションをfalseに設定すると、行を挿入する場合にドラッグ操作を実行できなくなります。
  2. allowDragInsertColumns:デフォルト値は未定義。このオプションをfalseに設定すると、列を挿入する場合にドラッグ操作を実行できなくなります。
  3. allowInsertRows:デフォルト値は未定義。このオプションをfalseに設定すると、行の挿入が禁止されます。
  4. allowInsertColumns:デフォルト値は未定義。このオプションをfalseに設定すると、列の挿入が禁止されます。
  5. allowDeleteRows:デフォルト値は未定義。このオプションをfalseに設定すると、行の削除が禁止されます。
  6. allowDeleteColumns:デフォルト値は未定義。このオプションをfalseに設定すると、列の削除が禁止されます。
  7. allowSelectLockedCells:デフォルト値は未定義。このオプションをfalseに設定すると、ロックされたセルを選択できなくなります。
  8. allowSelectUnlockedCells:デフォルト値は未定義。このオプションをfalseに設定すると、ロック解除されたセルを選択できなくなります。
  9. allowSort:デフォルト値は未定義。このオプションをfalseに設定すると、選択した範囲を並べ替えることができなくなります。
  10. allowFilter:デフォルト値は未定義。このオプションをfalseに設定すると、選択した範囲をフィルタリングすることができなくなります。
  11. allowEditObjects:デフォルト値は未定義。このオプションをfalseに設定すると、フローティングオブジェクトを編集できなくなります。
  12. allowResizeRows:デフォルト値は未定義。このオプションをfalseに設定すると、行のサイズ変更が禁止されます。
  13. allowResizeColumns:デフォルト値は未定義。このオプションをfalseに設定すると、列のサイズ変更が禁止されます。

isProtectedオプションを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;

次のサンプルコードは、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.allowDargInsertRows = true;
sheet.options.protectionOptions.allowDragInsertColumns = true;
注:保護オプションallowInsertRows、allowInsertColumns、allowDeleteRows、allowDeleteColumnsは、ユーザーインタフェース上で操作を実行する場合のみに適用されます。つまり、コンテキストメニューでの、行および列の挿入および削除コマンドのみが制限されます。