[]
SpreadJS는 시트 영역에서 셀 범위에 손쉽게 접근할 수 있는 방법을 제공합니다. getRange 메서드를 사용하면 시트에서 범위 정보를 편리하게 가져올 수 있습니다.
해당 메서드는 사용자가 요구 사항에 따라 행 및 열 인덱스를 통해 또는 범위 주소를 통해 시트 영역의 범위 정보를 가져올 수 있도록 지원하며, 아래의 두 섹션에서 각각 설명하겠습니다.
getRange(row, col, rowCount, colCount, sheetArea) 메서드를 사용하면 시트 영역에서 특정 셀 범위를 가져올 수 있습니다. 이 메서드는 행 인덱스, 열 인덱스, 범위의 행 수, 열 수 등의 매개변수를 사용합니다. 이러한 방식으로 지정된 시트 영역에서 행 및 열 인덱스를 기준으로 셀 범위를 가져올 수 있습니다.
아래 이미지는 행 및 열 인덱스를 통해 셀 범위를 가져오는 예사를 보여줍니다.
다음 코드 스니펫은 getRange 메서드에 행 및 열 인덱스를 사용하여 B2:F6 범위를 지정하는 방법을 보여줍니다.
Ask ChatGPT
$(document).ready(function () {
// Spread 초기화
var spread = new GC.Spread.Sheets.Workbook(document.getElementById('ss'), { sheetCount: 1 });
// 활성화 시트 가져오기
var sheet = spread.getActiveSheet();
// 열과 행 정보를 범위 가져오기
var range = sheet.getRange(1, 1, 5, 5, GC.Spread.Sheets.SheetArea.viewport);
range.text("Text");
});
시트 영역에서 셀 범위를 가져오는 또 다른 방법은 getRange(address, sheetArea) 메서드를 사용하는 것입니다. 해당 메서드는 범위 주소 문자열을 사용하여 지정된 시트 영역의 셀 범위를 가져옵니다.
아래 이미지는 범위 주소를 통해 셀 범위를 가져오는 예시를 보여줍니다.
다음 코드 스니펫은 getRange 메서드에 범위 주소 문자열을 사용하여 A1:E5 범위를 지정하는 방법을 보여줍니다.
$(document).ready(function () {
// Spread 초기화
var spread = new GC.Spread.Sheets.Workbook(document.getElementById('ss'), { sheetCount: 1 });
// 활성화 시트 가져오기
var sheet = spread.getActiveSheet();
// 범위 주소로 범위 가져오기
var range = sheet.getRange('A1:E5', GC.Spread.Sheets.SheetArea.viewport);
range.text("Text");
});
시트에 있는 데이터의 유형을 기준으로 셀 범위를 가져오려면 getUsedRange 메서드를 사용할 수 있습니다. 해당 메서드는 UsedRangeType 열거형 옵션을 매개변수로 사용하여 다양한 데이터 유형의 최대 범위를 빠르게 가져옵니다.
이 기능은 스파크라인, 차트, 슬라이서, 태그 등 다양한 형태의 데이터와 작업할 때 워크시트 전반에 걸쳐 필요한 데이터 범위를 신속하게 가져오는 데 유용합니다.
아래 표는 UsedRangeType
열거형의 다양한 멤버와 그 설명을 나타냅니다.
멤버 이름 | 설명 |
---|---|
all | 데이터, 수식, 태그, 스타일, 스파크라인, 차트 등 사용된 범위의 모든 유형의 내용을 포함합니다. |
axis | 차트에서 축으로 참조되는 셀을 포함합니다. |
chart | 차트 시리즈를 그리는 데 사용되는 데이터 범위를 포함합니다. |
colstyle | 데이터가 없어도 특정 스타일이 적용된 열을 포함합니다. |
comment | 메모가 포함된 셀을 포함합니다. |
conditionFormat | 조건부 서식 규칙이 적용된 셀을 포함합니다. |
data | 텍스트, 숫자 또는 날짜와 같은 데이터를 포함한 셀을 포함합니다. |
dataRange | 테이블이나 차트의 데이터 소스로 사용되는 범위를 포함합니다. |
dataValidation | 데이터 유효성 검사 규칙이 적용된 셀을 포함합니다. |
filter | 필터 작업에 관련된 셀을 포함하며, 예를 들어 필터가 적용된 테이블의 헤더 행을 포함합니다. |
formula | 수식을 포함한 셀을 포함합니다. |
picture | 시트에 추가된 이미지 또는 그림과 관련된 셀을 포함합니다. |
pivottable | 피벗 테이블과 관련된 셀을 포함하며, 데이터 소스와 계산 필드도 포함됩니다. |
rowStyle | 특정 스타일이 적용된 행을 포함합니다. |
shape | 도형 또는 그림이 포함된 셀을 포함합니다. |
slicer | 테이블 또는 피벗 테이블에 연결된 슬라이서와 관련된 셀을 포함합니다. |
span | 병합된 범위에 포함된 셀을 포함합니다. |
sparkLine | 스파크라인이 포함된 셀을 포함합니다. |
style | 특정 스타일이 적용된 셀을 포함합니다. |
table | 테이블의 일부인 셀을 포함합니다. |
tag | 연결된 태그가 있는 셀을 포함합니다. |
다음 코드는 셀 태그(cell tag)가 적용된 셀 범위를 가져오는 방법을 보여줍니다. 하지만 위에서 설명한 UsedRangeType
열거형의 멤버 중 어떤 것이든 필요에 따라 셀 범위를 가져오는 데 사용할 수 있습니다.
function getRangeStyle() {
var sheet = spread.getSheet(0);
var styleRange = sheet.getUsedRange(GC.Spread.Sheets.UsedRangeType.style);
// styleRange:{row: 2, col: 2, rowCount: 3, colCount: 3}
sheet.setSelection(styleRange.row, styleRange.col, styleRange.rowCount, styleRange.colCount, GC.Spread.Sheets.SheetArea.viewport, GC.Spread.Sheets.StorageType.style);
}
function getRangeTag() {
var sheet = spread.getSheet(0);
sheet.setTag(2, 2, "value");
sheet.setTag(4, 2, new Date());
sheet.setTag(6, 8, { Product: 'SpreadJS', Price: 99999 });
var usedRangeTag = sheet.getUsedRange(GC.Spread.Sheets.UsedRangeType.tag);
console.log(usedRangeTag); // usedRangeTag:{row: 2, rowCount: 5, col: 2, colCount: 7}
}