[]
SpreadJS에서는 워크시트에서 다양한 작업을 수행하여 여러 가지 중요한 작업을 처리할 수 있습니다.
워크북에 워크시트를 추가하려면 Workbook.addSheet 메서드를 사용합니다.
$(document).ready(function ()
{
// 시트의 수 3개로 설정
var spread =
new GC.Spread.Sheets.Workbook(document.getElementById("ss"),
{sheetCount:3});
$("#button1").click(function()
{
// 새 시트 생성 및 2번째 위치에 추가
var sheet = new GC.Spread.Sheets.Worksheet();
sheet.name("The added sheet");
spread.addSheet(1, sheet);
});
});
워크북에서 워크시트를 제거하려면 Workbook.removeSheet 메서드를 사용합니다.
$(document).ready(function ()
{
// 시트의 수 3개로 설정
var spread =
new GC.Spread.Sheets.Workbook(document.getElementById("ss"),{sheetCount:3});
$("#button1").click(function()
{
// 두번째 시트 삭제
spread.removeSheet(1);
});
});
Workbook.setSheetCount 메서드를 사용하여 워크북에 추가할 시트 수를 설정할 수 있습니다.
$(document).ready(function ()
{
var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"),
{sheetCount:3});
// 시트의 수를 5개로 설정
spread.setSheetCount(5);
});
Worksheet.name 메서드를 사용하여 워크시트 이름을 변경할 수 있습니다.
이 코드 예제는 시트 이름을 변경하고 시트 탭 색상을 설정하는 방법을 보여줍니다.
$(document).ready(function ()
{
var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"),
{sheetCount:3});
// 시트의 수를 5개로 설정
spread.setSheetCount(5);
// 시트 이름 변경
spread.sheets[0].name("The first sheet");
spread.sheets[1].name( "The second sheet");
// 시트 탭 표시 색상과 같은 시트 정보 변경
spread.sheets[0].options.sheetTabColor = "LemonChiffon";
});
참고: 워크북 내에서 중복된 이름이나 특수 문자를 사용하면 오류가 발생합니다.
런타임 중 오류 메시지를 확인하려면
undefined
가 바인딩된 시트에서 처리하시기 바랍니다.
시트 인덱스를 변경하고 탭 스트립에서 시트 순서를 바꾸려면 Workbook.changeSheetIndex 메서드를 사용합니다. 이 메서드는 시트 이름과 대상 인덱스 번호를 매개변수로 받습니다.
또는, moveSheet 명령을 사용하여 시트를 이동할 수도 있습니다.
다음 예제는 "Sheet2"
의 시트 인덱스를 변경하고, 새 인덱스를 사용하는 시트의 셀에 텍스트를 추가하는 방법을 보여줍니다.
window.onload = function ()
{
var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"), {sheetCount:5});
spread.changeSheetIndex("Sheet2", 3);
spread.sheets[3].getCell(0, 0).text("changeSheetIndex successful");
// 또는 명령어를 사용하여 시트 인덱스를 변경
// spread.commandManager().execute({cmd: "moveSheet", sheetName: "Sheet2", targetIndex: 3});
};
copySheet 명령을 사용하면 시트를 새 워크시트로 복사할 수 있습니다. 이 명령은 시트 이름, 대상 인덱스, 새 시트 이름과 같은 매개변수를 받습니다.
또한 복사된 시트에 데이터 소스 바인딩을 포함할지 여부도 지정할 수 있으며, 기본값은 true
입니다.
복사된 시트는 원본 시트와 모양이 동일하며,내용 중 현재 시트를 참조하는 부분은 적절히 수정되고, 다른 시트를 참조하는 부분은 그대로 유지됩니다.
Original Sheet | Copied Sheet |
---|---|
복사된 시트에는 원본 시트에 정의된 **사용자 지정 이름(custom names)**도 함께 복사됩니다.
Original Sheet | Copied Sheet |
---|---|
또한 시트 복사 시, 표(tables), 슬라이서(slicers), 차트(charts), 도형(shapes) 등과 같은 전역 고유 요소 이름도 모두 적절히 수정됩니다.
Original Sheet | Copied Sheet |
---|---|
아래 예제는 "Sheet1"
을 새 워크시트로 복사하고, 수식 내 기존 시트 참조 및 테이블 이름을 수정하는 동작을 보여줍니다.
window.onload = function () {
// 워크북과 워크시트 구성
var spread = new GC.Spread.Sheets.Workbook("ss", {sheetCount:5});
var activeSheet = spread.getActiveSheet();
var tableData = {
sales: [
{ orderDate: '1/6/2013', item: 'Pencil', units: 95, cost: 1.99},
{ orderDate: '4/1/2013', item: 'Binder', units: 60, cost: 4.99},
{ orderDate: '6/8/2013', item: 'Pen Set', units: 16, cost: 15.99},
{ orderDate: '8/1/2013', item: 'Pencil', units: 20, cost: 24.99},
{ orderDate: '10/8/2013', item: 'Binder', units: 31, cost: 16.99}
]
};
activeSheet.getCell(7,2).text("Total");
activeSheet.getCell(7,3).formula("=SUM(Sheet1!D2:D6)");
var table = activeSheet.tables.add('Table1', 0, 0, 7, 4);
var tableColumn1 = new GC.Spread.Sheets.Tables.TableColumn(1, "orderDate", "Order Date", "yyyy-mm-dd");
var tableColumn2 = new GC.Spread.Sheets.Tables.TableColumn(2, "item", "Item");
var tableColumn3 = new GC.Spread.Sheets.Tables.TableColumn(3, "units", "Units");
var tableColumn4 = new GC.Spread.Sheets.Tables.TableColumn(4, "cost", "Cost");
table.autoGenerateColumns(false);
table.bind([tableColumn1, tableColumn2, tableColumn3, tableColumn4], 'sales', tableData);
activeSheet.autoFitColumn(0);
spread.commandManager().execute({cmd: "copySheet", sheetName: "Sheet1", targetIndex: 3, newName: "Sheet1 (2)", includeBindingSource: true});
}
SpreadJS에서는 시트 탭의 컨텍스트 메뉴를 통해 워크시트를 숨기거나 다시 표시할 수 있습니다.
시트 탭을 마우스 오른쪽 버튼으로 클릭하고, “숨기기(Hide)” 또는 “다시 표시(Unhide…)” 옵션을 선택하여 작업을 수행할 수 있습니다.
Worksheet.visible 클래스 메서드는 런타임 중 워크시트의 표시 상태를 설정하는 데 사용할 수 있습니다. 이 메서드는 워크시트를 표시할지 여부를 결정하기 위해 boolean 값을 받습니다. 또한 Worksheet.visible 메서드에 SheetTabVisible 열거형 값을 매개변수로 사용하여 워크시트의 표시 상태를 설정할 수도 있습니다.
// 워크북과 워크시트 구성
var spread = new GC.Spread.Sheets.Workbook("ss", { sheetCount: 5 });
// "Sheet2" 숨기기
spread.getSheet(1).visible(false);
// "Sheet4" 숨기기
spread.getSheet(3).visible(GC.Spread.Sheets.SheetTabVisible.hidden);
// or
// spread.getSheet(3).visible(0);
SheetTabVisible.veryHidden 열거형 옵션을 사용하면 애플리케이션에서 시트를 Spread 컴포넌트 내에서 숨길 수 있습니다. 이는 시트 탭 컨텍스트 메뉴 항목인 "다시 표시(Unhide...)"를 사용하여 UI를 통해 시트를 표시할 수 없음을 의미합니다.
"very hidden" 상태의 시트는 따라서 Worksheet.visible 메서드를 사용해야만 표시할 수 있습니다.
// Very hidden "Sheet3"
spread.getSheet(2).visible(GC.Spread.Sheets.SheetTabVisible.veryHidden);
참고 : 사용자들은 "very hidden" 상태의 시트에 대해 다음 작업을 수행할 수 없습니다.
활성 워크시트로 설정할 수 없습니다.
워크시트를 선택할 수 없습니다.
시트의 내용을 찾기 또는 바꾸기를 통해 검색할 수 없습니다.
GoTo(이동) 작업의 영향을 받지 않습니다.
하이퍼링크로 시트의 내용을 참조할 수 없습니다.
워크시트를 인쇄할 수 없습니다.
다음 예제 코드를 사용하여 기본 시트 스타일을 설정할 수 있습니다:
$(document).ready(function ()
{
var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"),
{sheetCount:3});
var activeSheet = spread.getActiveSheet();
// 기본 스타일 설정
activeSheet.setRowCount(5, GC.Spread.Sheets.SheetArea.viewport);
activeSheet.setColumnCount(5, GC.Spread.Sheets.SheetArea.viewport);
// 기본 스타일 설정
var defaultStyle = new GC.Spread.Sheets.Style();
defaultStyle.backColor = "LemonChiffon";
defaultStyle.foreColor = "Red";
defaultStyle.formatter = "0.00";
defaultStyle.hAlign = GC.Spread.Sheets.HorizontalAlign.center;
defaultStyle.borderLeft =
new GC.Spread.Sheets.LineBorder("Green",GC.Spread.Sheets.LineStyle.medium);
defaultStyle.borderTop =
new GC.Spread.Sheets.LineBorder("Green",GC.Spread.Sheets.LineStyle.medium);
defaultStyle.borderRight =
new GC.Spread.Sheets.LineBorder("Green",GC.Spread.Sheets.LineStyle.medium);
defaultStyle.borderBottom =
new GC.Spread.Sheets.LineBorder("Green",GC.Spread.Sheets.LineStyle.medium);
activeSheet.setDefaultStyle(defaultStyle, GC.Spread.Sheets.SheetArea.viewport);
var rowCount = activeSheet.getRowCount();
var colCount = activeSheet.getColumnCount();
for(var i = 0; i < rowCount; i++)
{
for(var j = 0; j < colCount; j++)
{
activeSheet.setValue(i, j, i+j, GC.Spread.Sheets.SheetArea.viewport);
}
}
});
시트의 글꼴 스타일은 font
속성을 사용하여 설정할 수 있으며, 이 속성에는 글꼴 스타일, 글꼴 굵기, 글꼴 크기, 글꼴 패밀리 값이 포함됩니다.
또는 fontStyle
, fontWeight
, fontSize
, fontFamily
와 같은 개별 글꼴 속성을 사용하여 각각의 속성을 별도로 설정할 수도 있습니다.
아래 이미지는 font
속성과 개별 글꼴 속성을 각각 사용하는 방법을 보여줍니다.
다음 예제 코드는 셀 (2,0), (4,0), (6,0)에 font
속성을 적용하였고, 나머지 셀에는 개별 글꼴 속성을 적용한 것입니다.
// Font
activeSheet.getCell(2, 0).font('italic normal 12px Mangal');
activeSheet.getCell(4, 0).font('normal bold 15px Arial Black');
activeSheet.getCell(6, 0).font('normal normal 18px Georgia');
// FontFamily
activeSheet.getCell(2, 1).fontFamily('Mangal');
activeSheet.getCell(4, 1).fontFamily('Arial Black');
activeSheet.getCell(6, 1).fontFamily('Georgia');
// FontSize
activeSheet.getCell(2, 2).fontSize('12px');
activeSheet.getCell(4, 2).fontSize('20px');
activeSheet.getCell(6, 2).fontSize('28px');
// FontWeight
activeSheet.getCell(2, 3).fontWeight('bold');
activeSheet.getCell(4, 3).fontWeight('normal');
// Italic
activeSheet.getCell(2, 4).fontStyle('italic');
activeSheet.getCell(4, 4).fontStyle('normal');
워크시트 옵션의 gridline 설정을 통해 눈금선의 색상을 변경하거나 숨길 수 있습니다.
다음 예제 코드는 눈금선 색상을 설정하고 수평 눈금선을 숨깁니다.
$(document).ready(function ()
{
var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"),
{sheetCount:3});
var sheet = spread.getActiveSheet();
// 수평 그리드 눈금선 숨김
sheet.options.gridline = {color:"red", showVerticalGridline: true,
showHorizontalGridline: false};
spread.invalidateLayout();
spread.repaint();
});