테이블을 사용하는 Web Components
Infragistics Web Components Excel 엔진의 WorksheetTable
기능을 사용하면 행과 열의 데이터 형식을 지정할 수 있습니다. 워크시트 테이블의 데이터는 워크 worksheet
의 다른 행 및 열에 있는 데이터와 독립적으로 관리할 수 있습니다.
Adding a Table to a Worksheet
Infragistics Web Components 요소 Excel 엔진의 워크시트 테이블은 WorksheetTable
개체로 표시되며 워크시트의 tables
컬렉션에 추가됩니다. 테이블을 추가하려면 이 컬렉션에서 Add
메서드를 호출해야 합니다. 이 방법에서는 테이블을 추가할 영역을 지정하고, 테이블에 머리글이 포함되어야 하는지 여부를 지정하고, 선택적으로 테이블 스타일을 WorksheetTableStyle
개체로 지정할 수 있습니다.
다음 코드는 A1부터 G10까지의 영역에 걸쳐 있는 worksheet
에 머리글이 있는 테이블을 추가하는 방법을 보여줍니다. 여기서 A1부터 G1은 열 머리글이 됩니다.
var workbook = new Workbook(WorkbookFormat.Excel2007);
var worksheet = this.workbook.worksheets().add("Sheet1");
worksheet.tables().add("A1:G10", true);
테이블을 추가한 후에는 WorksheetTable
에서 insertColumns
, insertDataRows
, deleteColumns
또는 deleteDataRows
메서드를 호출하여 행과 열을 추가하거나 삭제하여 테이블을 수정할 수 있습니다. 테이블의 resize
방법을 사용하여 새 테이블 범위를 설정할 수도 있습니다.
다음 코드 조각은 이러한 메서드의 사용법을 보여줍니다.
var workbook = new Workbook(WorkbookFormat.Excel2007);
var worksheet = workbook.worksheets().add("Sheet1");
var table = worksheet.tables().add("A1:G10", true);
//Will add 5 columns at index 1.
table.insertColumns(1, 5);
//Will add 5 rows at index 0.
table.insertDataRows(0, 5);
//Will delete 5 columns starting at index 1.
table.deleteColumns(1, 5);
//Will delete 5 rows starting at index 0.
table.deleteDataRows(0, 5);
//Will resize the table to be in the region of A1:G15.
table.resize("A1:G15");
Filtering Tables
필터링은 WorksheetTable
의 열에 필터를 적용하여 수행됩니다. 필터가 열에 적용되면 테이블의 모든 필터가 재평가되어 적용된 모든 필터의 기준을 충족하는 행이 결정됩니다.
나중에 테이블의 데이터가 변경되거나 행의 Hidden
속성을 변경하면 필터 조건이 자동으로 재평가되지 않습니다. 테이블의 필터 조건은 테이블 열 필터가 추가, 제거, 수정되는 경우 또는 테이블에서 reapplyFilters
메소드가 호출되는 경우에만 다시 적용됩니다.
다음은 WorksheetTable
의 열에 사용할 수 있는 필터 유형입니다.
AverageFilter
- 열에 있는 모든 셀의 평균 값보다 높은지 낮은지 여부에 따라 셀을 필터링할 수 있습니다.CustomFilter
- 하나 이상의 사용자 정의 조건을 기반으로 셀을 필터링할 수 있습니다.DatePeriodFilter
- 특정 연도 또는 특정 분기의 날짜가 있는 셀만 표시됩니다.FillFilter
- 특정 채우기가 있는 셀만 표시됩니다.FixedValuesFilter
- 특정 표시 값과만 일치하거나 특정 날짜/시간 그룹에 속하는 셀이 표시됩니다.FontColorFilter
- 특정 글꼴 색상이 있는 셀만 표시됩니다.RelativeDateRangeFilter
- 날짜 값이 있는 셀은 필터가 적용된 날짜의 상대 시간 범위(예: 다음 날 또는 이전 분기) 내에 발생하는지 여부를 기준으로 필터링할 수 있습니다.TopOrBottomFilter
- 이 필터를 사용하면 상위 또는 하위 N 값을 필터링할 수 있습니다. 또한 상위 또는 하위 N% 값을 필터링할 수도 있습니다.YearToDateFilter
- 날짜 값이 있는 셀은 해당 연도의 시작과 필터가 적용된 날짜 사이에 발생하는 경우 필터링할 수 있습니다.
다음 코드 조각은 WorksheetTable
의 첫 번째 열에 "평균 이상" 필터를 적용하는 방법을 보여줍니다.
var workbook = new Workbook(WorkbookFormat.Excel2007);
var worksheet = workbook.worksheets().add("Sheet1");
var table = worksheet.tables().add("A1:G10", true);
table.columns(0).applyAverageFilter(AverageFilterType.AboveAverage);
Sorting Tables
정렬은 테이블 컬럼에 정렬 조건을 설정하여 수행됩니다. 열에 정렬 조건을 설정하면 테이블의 모든 정렬 조건을 다시 평가하여 테이블의 셀 순서를 결정합니다. 정렬 기준을 충족하기 위해 셀을 이동해야 하는 경우 테이블의 전체 셀 행이 한 단위로 이동됩니다.
이후에 테이블의 데이터가 변경되면 정렬 조건이 자동으로 재평가되지 않습니다. 테이블의 정렬 조건은 정렬 조건이 추가, 제거, 수정되거나 테이블에서 reapplySortConditions
메소드가 호출되는 경우에만 다시 적용됩니다. 정렬 조건을 다시 평가하면 표시되는 셀만 정렬됩니다. 숨겨진 행의 모든 셀은 그대로 유지됩니다.
테이블 열에서 정렬 조건에 액세스하는 것 외에도 WorksheetTable
의 sortSettings
속성의 sortConditions
컬렉션에서도 노출됩니다. 이는 열/정렬 조건 쌍의 순서가 지정된 모음입니다. 이 컬렉션의 순서는 정렬의 우선순위입니다.
열에 설정할 수 있는 정렬 조건 유형은 다음과 같습니다.
OrderedSortCondition
- 값에 따라 오름차순 또는 내림차순으로 셀을 정렬합니다.CustomListSortCondition
- 텍스트 또는 표시 값을 기준으로 정의된 순서로 셀을 정렬합니다. 예를 들어, 알파벳순이 아닌 달력에 표시되는 날짜를 정렬하는 데 유용할 수 있습니다.FillSortCondition
- 채우기가 특정 패턴인지 아니면 그라데이션인지에 따라 셀을 정렬합니다.FontColorSortCondition
- 글꼴이 특정 색상인지 여부에 따라 셀을 정렬합니다.
문자열을 대소문자를 구분하여 정렬해야 하는지 여부를 결정하기 위해 WorksheetTable
의 sortSettings
에 caseSensitive
속성도 있습니다.
다음 코드 조각은 OrderedSortCondition
을 WorksheetTable
에 적용하는 방법을 보여줍니다.
var workbook = new Workbook(WorkbookFormat.Excel2007);
var worksheet = this.workbook.worksheets().add("Sheet1");
var table = worksheet.tables().add("A1:G10", true);
table.columns(0).sortCondition = new OrderedSortCondition(SortDirection.Ascending);
//Alternative:
table.sortSettings.sortConditions().addItem(table.columns(0), new OrderedSortCondition(SortDirection.Ascending));