[]
        
(Showing Draft Content)

정렬

SpreadJS를 사용하면 피벗 테이블 데이터를 정렬하여 빠르고 편리하게 분석할 수 있도록 구성할 수 있습니다. 정렬 기능은 특히 대용량 데이터를 다룰 때 유용합니다. PivotTable.sort 함수를 사용하면 데이터를 정렬할 수 있으며, 이 함수는 sortInfo 객체를 매개변수로 받습니다.

SpreadJS에서는 피벗 테이블 데이터를 다음 네 가지 방식으로 정렬할 수 있습니다:

  1. 필드 항목 이름 기준 정렬

  2. 값 기준 정렬

  3. 사용자 정의 필드 항목 값 기준 정렬

  4. 사용자 정의 콜백 정렬

필드 항목 이름 기준 정렬

피벗 테이블 데이터를 특정 필드를 기준으로 정렬하려면, 필드 이름을 지정하고 sortInfo의 sortType 속성을 설정하여 정렬 순서를 오름차순, 내림차순 또는 사용자 정의로 지정할 수 있습니다.

아래 이미지는 "Category" 필드에 내림차순 정렬 순서가 적용된 예시를 보여줍니다.

pivot-sort-by-field-name


다음 코드 샘플은 필드 항목 이름 기준으로 피벗 테이블 데이터를 정렬하는 방법을 보여줍니다:

let pivotTable = spread.getActiveSheet().pivotTables.get("PivotTable");
 var sortInfo = {
  sortType: GC.Pivot.SortType.desc
 };
pivotTable.sort("Category", sortInfo);

디자이너 사용

디자이너에서 필드의 필터 드롭다운에서 기타 정렬 옵션..(More Sort Options..)을 클릭하여 데이터를 정렬할 수도 있습니다. 이 옵션을 클릭하면 필드 정렬(Sort Field) 대화상자가 열리며, 여기서 대상 필드를 선택하고 정렬 유형을 오름차순 또는 내림차순으로 설정할 수 있습니다.

아래 이미지는 디자이너에서 필드 항목 이름을 기준으로 정렬하는 방법을 보여줍니다:

pivot-sort-by-field-name

값 기준 정렬

피벗 테이블 데이터를 필드의 값에 따라 정렬하려면, sortInfo 클래스의 sortType 및 sortValueFieldName 속성을 설정할 수 있습니다. sortValueFieldName 속성을 사용하면 데이터를 정렬할 기준이 되는 필드의 이름을 지정할 수 있습니다. 이 기능을 통해 "Grand Total"(총합계) 열의 값을 기준으로 피벗 테이블 데이터를 정렬할 수 있습니다.

아래 이미지는 "Quantity" 값을 기준으로 "Category" 필드를 오름차순으로 정렬한 예시입니다.

pivot-sort-by-value


다음 코드 샘플은 피벗 테이블에서 값을 기준으로 정렬하는 방법을 보여줍니다:

let pivotTable = spread.getActiveSheet().pivotTables.get("PivotTable");
var sortInfo = {
    sortType: GC.Pivot.SortType.asc,
    sortValueFieldName: "Quantity"
 };
  pivotTable.sort("Category", sortInfo);

디자이너 사용

디자이너에서 필드의 필터 드롭다운에서 기타 정렬 옵션..(More Sort Options..)을 클릭하여 데이터를 정렬할 수 있습니다. 이 옵션을 클릭하면 정렬 필드(Sort Field) 대화상자가 열리며, 여기서 대상 필드를 선택하고 정렬 순서를 오름차순 또는 내림차순으로 설정할 수 있습니다.

아래 이미지는 디자이너에서 값을 기준으로 정렬하는 방법을 보여줍니다:

pivot-sort-by-value


값 영역의 컨텍스트 메뉴에서도 Sort(정렬) 옵션을 사용하여 피벗 데이터를 값 기준으로 정렬할 수 있습니다. 이 메뉴에서는 다음 세 가지 정렬 옵션을 제공합니다:

  • 작은 값부터 큰 값 순으로 정렬

  • 큰 값부터 작은 값 순으로 정렬

  • 기타 정렬 옵션

앞의 두 옵션은 각각 오름차순 및 내림차순으로 정렬하며, 기타 정렬 옵션은 해당 값 영역에 따라 다음과 같이 동작합니다:

Value Area

Dialog

Behavior

일반 값 영역

sort-by-value1

값 기준 정렬(Sort by Value) 대화상자가 표시됩니다.

총계 영역

sort-by-value2

값 기준 정렬(Sort by Value) 대화상자가 표시되지만, 다음과 같은 조건과 함께 정렬 방향은 비활성화됩니다:

- Grand Total 열인 경우, 방향은 기본적으로 위에서 아래로입니다.

- Grand Total 행인 경우, 방향은 기본적으로 왼쪽에서 오른쪽입니다.

- Grand Total 행과 열 모두인 경우, 대화상자가 표시되지 않습니다.

행 헤더 영역/코너 영역

sort-by-value3

정렬 필드(Sort Field) 대화상자가 열리며, 다음과 같은 조건이 적용됩니다:

- Compact 레이아웃의 경우, Corner 영역에 정렬 옵션이 나타나지 않습니다.

- 선택한 필드가 ΣValues 필드인 경우, 값 기준 정렬(Sort by Value) 대화상자가 나타납니다.

- 선택한 Row 영역이 ΣValues 항목인 경우, 대화상자가 나타나지 않습니다.

열 헤더 영역

sort-by-value4

정렬 필드(Sort Field) 대화상자가 열리며, 다음과 같은 조건이 적용됩니다:

- 선택한 필드가 ΣValues 필드인 경우, 값 기준 정렬(Sort by Value) 대화상자가 나타납니다.

- 선택한 Column 영역이 ΣValues 항목인 경우, 대화상자가 나타나지 않습니다.

사용자 정의 필드 항목 값 기준 정렬

사용자 정의 필드 항목 값을 기준으로 피벗 테이블 데이터를 정렬하려면, sortInfo 객체의 sortByPivotReferences 속성을 사용할 수 있습니다.

아래 이미지는 "OrderDate" 필드의 "Qtr1" 데이터를 기준으로 "Category" 필드를 오름차순으로 정렬한 예시입니다.

pivot-sort-by-custom-value


다음 코드 샘플은 사용자 정의 필드 항목 값을 기준으로 정렬하는 방법을 보여줍니다:

let pivotTable = spread.getActiveSheet().pivotTables.get("PivotTable");
 var sortInfo = {
  sortType: GC.Pivot.SortType.asc,
  sortValueFieldName: "Quantity",
  sortByPivotReferences: [
     {
        fieldName: "OrderDate",
        items: ["Qtr1"]
     }
    ]
}
pivotTable.sort("Category", sortInfo);

디자이너 사용

디자이너에서 필드의 필터 드롭다운에서 값 기준 정렬(Sort by Value) 을 클릭하여 데이터를 정렬할 수 있습니다. 이 옵션을 클릭하면 대상 필드의 정렬 순서를 선택할 수 있는 정렬 필드(Sort Field) 대화상자가 열리며, 여기서 기타 옵션..(More Options..) 버튼을 클릭하면 또 다른 정렬(Sort) 대화상자가 열립니다. 이 대화상자에서는 기본적으로 총합계(GrandTotal) 이 선택되어 있어 값 기준 정렬과 동일한 결과를 제공합니다. 사용자 정의 필드 항목 값으로 정렬하려면, 선택한 열의 값(Values in selected column) 의 범위 선택기를 사용해 범위를 지

행 또는 열 영역 필드의 경우 이 대화상자 옵션은 비활성화됩니다. 예를 들어, Category 필드에 대해 기타 옵션..(More Options..) 버튼을 클릭하면 버튼이 비활성화되므로, Quantity 필드를 선택한 후 기타 옵션(More Options...) 버튼을 클릭해야 합니다.

아래 이미지는 디자이너에서 사용자 정의 필드 항목 값을 기준으로 정렬하는 방법을 보여줍니다:

pivot-sort-by-custom-field-value

사용자 정의 콜백 정렬

값의 오름차순 또는 내림차순이 아닌 사용자 정의 로직을 사용하여 피벗 테이블 데이터를 정렬하려면, 사용자 정의 콜백 함수를 사용할 수 있습니다.

아래 이미지는 사용자 정의 콜백 함수를 사용하여 TotalSales 열을 정렬한 예시입니다.

pivot-sort-by-custom-callback

다음 코드 샘플은 사용자 정의 콜백 함수를 사용하여 TotalSales 열을 정렬하는 방법을 보여줍니다:

let pivotTable = spread.getActiveSheet().pivotTables.get("PivotTable");
 var sortInfo = {
       sortType: GC.Pivot.SortType.desc,
       customSortCallback: (fieldItemNameArray)=>{
       alert("sorting from custom callback")
       return fieldItemNameArray.sort((a,b)=>b-a);
    }
  };
pivotTable.sort("TotalSales", sortInfo);