[]
        
(Showing Draft Content)

편집

SpreadJS는 사용자가 셀의 편집 작업을 제어할 수 있도록 지원합니다. 셀의 편집 모드는 기본적으로 항상 활성화되어 있으며, 필요에 따라 셀에서 편집을 활성화하거나 비활성화할 수 있습니다.

다음 섹션에서는 셀을 항상 편집 모드로 유지하는 방법과, 모든 수단을 통해 셀 편집을 비활성화하는 방법을 설명합니다.

항상 편집 모드

사용자가 셀을 클릭할 때마다 셀을 항상 편집 모드로 설정할 수 있습니다. 일반적으로 사용자가 입력하거나 더블 클릭할 때 셀이 편집 모드로 전환됩니다.

EnterCell 이벤트에서 startEdit 메서드를 설정하면 사용자가 셀을 클릭하거나 tab 또는 enter를 사용해 셀로 이동하는 즉시 셀이 편집 모드로 전환됩니다.

다음 코드 샘플은 사용자가 셀을 클릭할 때 셀을 편집 모드로 설정합니다.

window.onload = function()
{
   var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"),{sheetCount:3});
   var activeSheet = spread.getActiveSheet();
   
   //항상 입력 모드로 설정
   spread.bind(GC.Spread.Sheets.Events.EnterCell, function (event, data)
   {
      var sheet = data.sheet;
      activeSheet.startEdit(false);
   });
}

startEdit 메서드의 selectAll 매개변수를 true로 설정하면 편집 중 텍스트가 변경될 때 모든 텍스트를 선택합니다.

다음 코드 샘플은 편집이 시작될 때 텍스트를 선택합니다.

$(document).ready(function ()
{
   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 속성은 모든 셀 유형에 대해 작동합니다.

    • allowEditInCell 속성은 셀 드롭다운을 사용하여 값을 제출하는 것에는 영향을 주지 않습니다. 드롭다운은 셀을 편집 모드로 만들지 않기 때문입니다.

    • allowEditInCell 속성은 ComboBox 셀이 열릴 때 편집 모드로 전환되기 때문에 ComboBox 셀의 열기를 제어합니다.

다음 코드는 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. 셀을 마우스 오른쪽 버튼으로 클릭하고 컨텍스트 메뉴에서 셀 서식(Format Cells)를 선택합니다.

  2. 셀 서식(Format Cells) 대화 상자에서 보호(Protection) 탭을 클릭합니다.

  3. 셀 편집 허용(Allow Edit in Cell) 체크박스를 사용하여 선택된 셀에서 편집을 활성화/비활성화합니다.

아래 이미지는 SpreadJS 디자이너에서 셀의 편집을 활성화 또는 비활성화하는 방법을 보여줍니다.

image