[]
        
(Showing Draft Content)

編集

SpreadJSでは、ユーザーがセルの編集操作を制御できます。セルの編集モードはデフォルトで常に有効になっています。必要に応じて、セルの編集を有効または無効にすることができます。

以下のセクションでは、ユーザーがセルの編集モードを常に有効にする方法と、セルの編集操作を完全に無効にする方法について説明します。

常時入力モード

ユーザーがクリックしたときは常に編集モードになるように、セルを設定できます。セルは通常、ユーザーが入力またはダブルクリックした時点で編集モードに切り替わります。

ユーザーがセルをクリックした時点、あるいはユーザーが[Tab]キーまたは[Enter]キーを使用してセルに移動した時点で、このセルをすぐに編集モードに切り替えるには、EnterCellイベント内でstartEditメソッドを設定します。

startEditメソッドのselectAllパラメータをtrueに設定すると、編集時にテキストが変更された場合に、すべてのテキストが選択されます。

コードの使用

次のサンプルコードは、ユーザーがクリックしたセルをすぐに編集モードに切り替えます。

spread.bind(GC.Spread.Sheets.Events.EnterCell, function (event, data) {
    var sheet = data.sheet;
    sheet.startEdit(false);
});

startEditメソッドのselectAllパラメータがtrueに設定されている場合、編集モードに入るときにすべてのテキストが選択されます。

次のサンプルコードは、編集が開始されたときにテキストを選択する方法を示しています。

$(document).ready(function ()
{
   var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"),{sheetCount:3});
   var sheet = spread.getActiveSheet();
   sheet.setValue(0, 0, "ABC", GC.Spread.Sheets.SheetArea.viewport);

   // 編集モードに入るときにすべてのテキストが選択されます
   spread.bind(GC.Spread.Sheets.Events.EnterCell, function (event, data)
   {
      var activeSheet = data.sheet;
      activeSheet.startEdit(true);
   });
});

セルの編集を無効にする

SpreadJSは必要に応じて以下の機能を使用して、セルの編集を無効にすることができます。

  • GC.Spread.Sheets.StyleクラスのallowEditInCellプロパティ

  • CellRangeクラスのallowEditInCell()メソッド

デフォルトではallowEditInCellプロパティは有効です。このプロパティを無効にすると、セルは次の場合に編集モードに入らなくなります。

  • セルをダブルクリックしたとき

  • キーボードを使用してセルまたは数式テキストボックスを編集しようとしたとき

  • worksheet.startEdit()メソッドを使用したとき

メモ:

  • allowEditInCell プロパティは、セルのロックが false に設定されている場合にのみ機能します。

  • allowEditInCell プロパティは、ドロップダウンボタンの動作には影響しません。allowEditInCell プロパティをfalseに設定した場合でも、ドロップダウンを使用してセルの値を変更できます。

  • allowEditInCell が false に設定されている場合、数式テキストボックスも読み取り専用になります。

  • allowEditInCell プロパティは、すべてのセルタイプで機能します。

    • allowEditInCell プロパティは、セルのドロップダウンを使用してセル値を設定することを制限しません。ドロップダウンはセルを編集モードにしないためです。

    • allowEditInCell プロパティは、コンボボックス型セルのドロップダウンリストの展開を抑止します。コンボボックスを開くとセルが編集モードになるためです。

次のコードは、Styleクラスの allowEditInCellプロパティを使用してセルの編集を無効にします。

var sheet = spread.getActiveSheet();
// StyleクラスのallowEditInCellプロパティを使用します
var style = new GC.Spread.Sheets.Style();
style.allowEditInCell = false;
sheet.setStyle(1, 1, style);

次のコードは、CellRangeクラスの allowEditInCellメソッドを使用してセルの編集を無効にします。

// CellRangeクラスのallowEditInCellメソッドを使用してセルの編集を無効にします
sheet.getRange(1, 1, 1, 1, GC.Spread.Sheets.SheetArea.viewport).allowEditInCell(false);

デザイナの使用

SpreadJS デザイナでは、セルが編集モードに入るかどうかを制御できます。

以下の手順に従って、セルの編集を無効にします。

  1. 任意のセルを右クリックし、コンテキストメニューから「セルの書式設定」を選択します。

  2. セルの書式設定 ダイアログで、保護 タブをクリックします。

  3. 「セルの編集を許可する」 チェックボックスを使用して、選択したセルの編集を有効/無効にします。

以下の画像は、SpreadJSデザイナを使用して、セルの編集を有効/無効にする方法を示しています。

allow_edit_using_designer