본문으로 건너뛰기

Cell.Filter

Cell.Filter은 Spreadsheet 모듈(Office.cell(iframe))의 객체 타입입니다. 메서드 6개.

비고​

  • 모듈: Spreadsheet · Office.cell(iframe) · 네임스페이스 Cell
  • 얻는 방법: Worksheet.getFilter(), Table.getFilter()
  • 모든 메서드는 Promise를 반환하며, 시그니처는 TypeScript 표기입니다.

메서드​

메서드설명
applyFilter(colId, criteria)지정한 열에 필터 조건을 적용한다.
clearFilter(colId)필터 조건을 해제한다.
create(range)자동 필터를 만든다.
getInfo()필터 영역과 열별 조건, 필터로 숨겨진 행 수, 정렬 상태를 반환한다.
remove()자동 필터를 없앤다.
sort(colId, order)필터 영역을 지정한 열 기준으로 정렬하고, 정렬 상태를 필터에 남긴다.

메서드 상세​

applyFilter(colId, criteria)​

지정한 열에 필터 조건을 적용한다. criteria 가 null 이면 그 열의 조건을 해제한다. 머리글 영역이 병합되어 있으면 병합 영역 안의 어느 열을 지정해도 병합 영역의 첫 열에만 필터가 적용된다. 시트 필터는 미리 create() 로 만들어 두어야 하지만, 표는 필터가 없을 때 조건을 적용하면 필터가 함께 만들어진다.

applyFilter(colId: number, criteria: object | null): Promise<void>;

매개변수

이름타입설명
colIdnumber대상 열. 필터 영역 첫 열부터 센 0-based 오프셋이며(0 = 첫 열), getInfo() 의 columns[].colId 와 같은 좌표계다
criteriaobject | null적용할 조건. FilterType 에 따라 FilterValuesCriteria·FilterCustomCriteria·FilterTop10Criteria·FilterDynamicCriteria 중 한 스키마다(필드는 각 typedef 참조). null 이면 그 열의 조건을 해제한다

반환값

none

clearFilter(colId)​

필터 조건을 해제한다. colId 를 지정하면 그 열만, 생략하면 조건이 걸린 모든 열을 해제한다. 필터 버튼은 그대로 남는다. 해제할 조건이 없거나 표에 아직 필터가 없으면 아무것도 바꾸지 않는다.

clearFilter(colId?: number): Promise<void>;

매개변수

이름타입설명
colId (선택)number해제할 열. 필터 영역 첫 열부터 센 0-based 오프셋이며(0 = 첫 열), 생략하면 모든 열을 해제한다

반환값

none

create(range)​

자동 필터를 만든다. 시트 필터는 range 로 지정한 영역에 만들며, range 를 생략하면 현재 선택 영역을 둘러싼 데이터 영역으로 넓혀 잡는다. 표 필터는 range 를 무시하고 요약 행을 뺀 표 영역에 만든다. 대상에 이미 필터가 있으면 만들 수 없고, range 를 생략했는데 선택 영역이 빈 셀 하나뿐이어도 만들 수 없다.

create(range?: string | RangeCoords): Promise<void>;

매개변수

이름타입설명
range (선택)string | RangeCoords필터를 만들 영역. A1 표기 문자열로도 지정할 수 있다("A1:B2", 단일 셀은 "E10")

반환값

none

getInfo()​

필터 영역과 열별 조건, 필터로 숨겨진 행 수, 정렬 상태를 반환한다. 필터가 아직 없으면 enabled 만 false 로 담고 나머지 필드는 넣지 않는다.

getInfo(): Promise<FilterInfo>;

반환값

Promise<FilterInfo>

remove()​

자동 필터를 없앤다. 필터 영역과 열 조건이 함께 사라진다.

remove(): Promise<void>;

반환값

none

sort(colId, order)​

필터 영역을 지정한 열 기준으로 정렬하고, 정렬 상태를 필터에 남긴다. 머리글 영역이 병합되어 있으면 병합 영역 안의 어느 열을 지정해도 병합 영역의 첫 열을 기준으로 정렬한다. 표는 필터가 없으면 정렬하면서 함께 만들지만, 시트는 자동으로 만들지 않아 create() 로 먼저 만들어야 한다.

sort(colId: number, order: SortOrder): Promise<Filter>;

매개변수

이름타입설명
colIdnumber정렬 기준 열. 필터 영역 첫 열부터 센 0-based 오프셋이며(0 = 첫 열), getInfo() 의 sort.colId 와 같은 좌표계다
orderSortOrder정렬 방향

반환값

Promise<Filter> - 이어서 호출할 수 있도록 이 Filter 를 그대로 반환한다