[]
단순한 오름차순 또는 내림차순 정렬만으로는 충분하지 않은 다양한 상황이 있을 수 있습니다. 예를 들어, 의류 사이즈를 XXS, XS, S, M, L, XL, XXL 등의 순서로 정렬하려면 항목을 비교한 후 정렬해야 합니다.
이러한 유형의 정렬은 사용자 정의 정렬(Customized Sorting)이라고 하며, SpreadJS는 이를 위해 Events.RangeSorting 이벤트와 이벤트 정보 내 compareFunction
기능을 제공합니다.
아래 GIF는 의류 사이즈에 대해 사용자 정의 정렬을 수행하는 예시를 보여줍니다.
아래 코드는 의류 사이즈 목록을 사용자 정의 정렬하는 방법을 보여줍니다.
// Spread 초기화
var spread = new GC.Spread.Sheets.Workbook(document.getElementById('ss'), { sheetCount: 1 });
// 활성 시트 가져오기
var activeSheet = spread.getActiveSheet();
// 데이터 설정
activeSheet.setArray(1, 1, [
["Men's clothing sizes"], [],
["XXS", "166–170"],
["XS", "168–173"],
["S", "171–176"],
["M", "174–179"],
["L", "177–182"],
["XL", "180–184"],
["XXL", "182–186"],
["3XL", "184–188"],
["4XL", "187–190"]]);
// 의류 사이즈를 XXS부터 7XL까지 정렬하는 함수
function compareList(obj1, obj2) {
var list = ["XXS", "XS", "S", "M", "L", "XL", "XXL", "3XL", "4XL", "5XL", "6XL", "7XL"];
var index1 = list.indexOf(obj1), index2 = list.indexOf(obj2);
if (index1 > index2) {
return 1;
} else if (index1 < index2) {
return -1;
} else {
return 0;
}
}
activeSheet.rowFilter(new GC.Spread.Sheets.Filter.HideRowFilter(new GC.Spread.Sheets.Range(3, 1, 9, 2)));
activeSheet.bind(GC.Spread.Sheets.Events.RangeSorting, function (e, info) {
info.compareFunction = compareList;
});
참고: 사용자 정의 UI 정렬에서는 색상(스타일)에 대한 정렬은 지원되지 않습니다.
Ask ChatGPT