[]
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 디자이너는 셀이 편집 모드로 진입할 수 있는지 여부를 제어할 수 있습니다.
다음 단계를 따라 셀에서 편집을 비활성화할 수 있습니다.
셀을 마우스 오른쪽 버튼으로 클릭하고 컨텍스트 메뉴에서 셀 서식(Format Cells)를 선택합니다.
셀 서식(Format Cells) 대화 상자에서 보호(Protection) 탭을 클릭합니다.
셀 편집 허용(Allow Edit in Cell) 체크박스를 사용하여 선택된 셀에서 편집을 활성화/비활성화합니다.
아래 이미지는 SpreadJS 디자이너에서 셀의 편집을 활성화 또는 비활성화하는 방법을 보여줍니다.