테이블 작업
표 작업
Aspose.Cells FOSS for Java는 Excel 표( ListObjects 또는 구조화된 참조라고도 함)를 지원합니다. 셀 범위에서 새 표를 만들고, 기존 표를 검사하고, 머리글 및 합계 행을 구성하고, 내장 표 스타일을 적용하고, 개별 열에 접근하며, 표를 일반 범위로 다시 변환할 수 있습니다. 주요 진입점은 ListObjectCollection이며, 이는 Worksheet.getListObjects()을 통해 액세스합니다.
개요
워크시트의 표는 Worksheet.getListObjects()이 반환하는 ListObjectCollection를 통해 관리됩니다. 각 ListObject는 하나의 Excel 표를 나타내며, 표시 이름, 주석, 셀 범위 경계, 열 컬렉션, 스타일 설정 및 머리글/합계 행 표시 여부를 제공합니다.
ListObjectCollection.add(startRow, startColumn, endRow, endColumn, hasHeaders)를 사용하여 새 표를 만들면, 새로 만든 표의 0 기반 인덱스를 반환합니다. 다른 오버로드는 셀 이름 문자열을 허용합니다: ListObjectCollection.add(startCellName, endCellName, hasHeaders).
핵심 클래스
| 클래스 | 설명 |
|---|---|
ListObject | 단일 Excel 테이블을 나타냅니다. getDisplayName(), getComment(), 범위 좌표, 열 컬렉션, 스타일 유형, 그리고 머리글/합계 행 가시성을 노출합니다. |
ListObjectCollection | 워크시트에 있는 모든 테이블의 컬렉션입니다. getCount()을 지원하고, get(), add(), remove()을 통한 인덱스 및 이름 기반 조회와 스타일 유형 변환 도우미를 제공합니다. |
ListColumn | 테이블 내의 하나의 열을 나타냅니다. 열 ID, 이름, 그리고 합계 행 계산 설정을 노출합니다. |
ListColumnCollection | 테이블 내 열의 순서가 지정된 컬렉션입니다. 개수와 인덱스 접근이 가능한 반복 가능 구조입니다. |
TableStyleType | 내장 Excel 테이블 스타일을 식별하는 열거형(Light 1–21, Medium 1–28, Dark 1–11, 또는 Custom/None). |
TotalsCalculation | 테이블 합계 행의 집계 함수에 대한 열거형(SUM, COUNT, AVERAGE, MAX, MIN, STD_DEV, VAR, COUNT_NUMS, CUSTOM, NONE). |
워크시트에서 표에 접근하기
Worksheet.getListObjects()를 통해 임의의 Worksheet에서 ListObjectCollection를 가져옵니다. ListObjectCollection.getCount()를 사용하여 표가 몇 개 있는지 확인합니다. 개별 표는 ListObjectCollection.get(index)를 통한 0 기반 인덱스 또는 ListObjectCollection.get(name)를 통한 표시 이름으로 접근합니다.
Workbook wb = new Workbook("input.xlsx");
WorksheetCollection sheets = wb.getWorksheets();
Worksheet ws = sheets.get(0);
ListObjectCollection tables = ws.getListObjects();
for (int i = 0; i < tables.getCount(); i++) {
ListObject table = tables.get(i);
System.out.println("Table: " + table.getDisplayName()
+ " rows: " + table.getStartRow() + "-" + table.getEndRow());
}새 테이블 만들기
셀 범위에 테이블을 삽입하려면 ListObjectCollection.add()을(를) 사용하십시오. hasHeaders 매개변수는 해당 범위의 첫 번째 행에 열 헤더가 포함되어 있는지를 나타냅니다.
Workbook wb = new Workbook();
WorksheetCollection sheets = wb.getWorksheets();
Worksheet ws = sheets.get(0);
// Populate data
ws.getCells().get("A1").putValue("Product");
ws.getCells().get("B1").putValue("Quantity");
ws.getCells().get("A2").putValue("Widget");
ws.getCells().get("B2").putValue(100);
// Create table over A1:B2 with headers in row 0
int tableIndex = ws.getListObjects().add(0, 0, 1, 1, true);
ListObject table = ws.getListObjects().get(tableIndex);
table.setDisplayName("SalesTable");테이블 속성 검사
한 번 ListObject 참조를 보유하면 다음을 읽을 수 있습니다:
ListObject.getDisplayName()— 테이블의 표시 이름 문자열.ListObject.getComment()— 테이블과 연결된 선택적 주석.ListObject.getStartRow()/ListObject.getStartColumn()— 테이블 범위의 왼쪽 위 셀.ListObject.getEndRow()/ListObject.getEndColumn()— 테이블 범위의 오른쪽 아래 셀.ListObject.isShowHeaderRow()— 헤더 행이 표시되는지 여부.ListObject.isShowTotals()— 총계 행이 표시되는지 여부.ListObject.getListColumns()— 표에 대한ListColumnCollection.
테이블 스타일링
내장 테이블 스타일을 ListObject.setTableStyleType(TableStyleType)을(를) 사용하여 적용합니다. TableStyleType 열거형에는 Light (1–21), Medium (1–28), Dark (1–11) 변형과 NONE 및 CUSTOM이(가) 포함됩니다.
ListObject table = ws.getListObjects().get(0);
table.setTableStyleType(TableStyleType.TABLE_STYLE_MEDIUM_2);추가 스타일 토글은 밴드 행, 밴드 열 및 첫/마지막 열 강조를 제어합니다:
ListObject.setShowTableStyleRowStripes(boolean)ListObject.setShowTableStyleColumnStripes(boolean)ListObject.setShowTableStyleFirstColumn(boolean)ListObject.setShowTableStyleLastColumn(boolean)
또한 ListObject.setTableStyleName(String)를 사용하여 사용자 정의 스타일 이름을 설정할 수 있습니다.
헬퍼 메서드 ListObjectCollection.parseTableStyleType(String)와 ListObjectCollection.tableStyleTypeName(TableStyleType)는 열거형과 해당 문자열 표현 사이를 변환합니다.
테이블 열 작업
각 개별 열은 ListObject.getListColumns()를 통해 액세스할 수 있으며, 이는 ListColumnCollection를 반환합니다. 각 ListColumn는 다음을 노출합니다:
ListColumn.getId()— 1부터 시작하는 OOXML 열 식별자.ListColumn.getName()/ListColumn.setName(String)— 열 머리글 텍스트.ListColumn.getTotalsCalculation()/ListColumn.setTotalsCalculation(TotalsCalculation)— 합계 행에 대한 집계 함수.ListColumn.getTotalsRowLabel()/ListColumn.setTotalsRowLabel(String)— 합계 행의 사용자 지정 레이블.ListColumn.getTotalsRowFormula()/ListColumn.setTotalsRowFormula(String)— 합계 행을 위한 사용자 지정 수식.
ListObject table = ws.getListObjects().get(0);
ListColumnCollection columns = table.getListColumns();
for (int i = 0; i < columns.getCount(); i++) {
ListColumn col = columns.get(i);
System.out.println("Column " + col.getId() + ": " + col.getName());
}합계 행 구성
ListObject.setShowTotals(true)를 사용하여 합계 행을 활성화하고, 이후 TotalsCalculation 열거형을 사용해 각 열의 집계 함수를 설정합니다.
ListObject table = ws.getListObjects().get(0);
table.setShowTotals(true);
ListColumn qtyColumn = table.getListColumns().get(1);
qtyColumn.setTotalsCalculation(TotalsCalculation.SUM);
ListColumn labelColumn = table.getListColumns().get(0);
labelColumn.setTotalsRowLabel("Total");표 크기 조정 및 변환
ListObject.resize(startRow, startColumn, endRow, endColumn, hasHeaders)를 사용하여 표를 다른 셀 범위에 맞게 크기 조정합니다.
ListObject.convertToRange()를 사용해 표를 일반 셀 범위로 변환합니다. 이렇게 하면 셀 데이터와 서식은 유지하면서 표 구조가 제거됩니다.
컬렉션에서 테이블을 완전히 제거하려면 ListObjectCollection.removeAt(index)를 사용하십시오.
테이블에 대한 AutoFilter
테이블에서 열 드롭다운 자동 필터 화살표를 표시하거나 제거합니다:
ListObject.showAutoFilter()— 헤더 행에 필터 화살표를 표시합니다.ListObject.removeAutoFilter()— 필터 화살표를 숨깁니다.
API Reference 요약
ListObject
| 메서드 | 반환 타입 | 설명 |
|---|---|---|
getDisplayName() | String | 테이블의 표시 이름. |
setDisplayName(name) | void | 표시 이름을 설정합니다. |
getComment() | String | 테이블에 대한 선택적 주석. |
setComment(comment) | void | 테이블 주석을 설정합니다. |
getStartRow() | int | 테이블 범위의 시작 행 인덱스. |
getStartColumn() | int | 테이블 범위의 시작 열 인덱스. |
getEndRow() | int | 테이블 범위의 종료 행 인덱스. |
getEndColumn() | int | 테이블 범위의 끝 열 인덱스. |
isShowHeaderRow() | boolean | 헤더 행이 표시되는지 여부. |
setShowHeaderRow(show) | void | 헤더 행을 표시하거나 숨깁니다. |
isShowTotals() | boolean | 합계 행이 표시되는지 여부. |
setShowTotals(show) | void | 합계 행을 표시하거나 숨깁니다. |
getTableStyleType() | TableStyleType | 내장된 테이블 스타일. |
setTableStyleType(type) | void | 내장된 테이블 스타일을 적용합니다. |
getTableStyleName() | String | 사용자 정의 테이블 스타일 이름. |
setTableStyleName(name) | void | 사용자 지정 표 스타일 이름을 설정합니다. |
getListColumns() | ListColumnCollection | 테이블의 열 컬렉션. |
resize(...) | void | 테이블을 새로운 범위로 크기 조정합니다. |
convertToRange() | void | 테이블을 일반 범위로 변환합니다. |
showAutoFilter() | void | 자동 필터 화살표를 표시합니다. |
removeAutoFilter() | void | 자동 필터 화살표를 숨깁니다. |
ListObjectCollection
| 메서드 | 반환 타입 | 설명 |
|---|---|---|
getCount() | int | 워크시트에 있는 테이블 수. |
get(index) | ListObject | 주어진 0부터 시작하는 인덱스에 해당하는 테이블을 반환합니다. |
get(name) | ListObject | 주어진 표시 이름을 가진 테이블을 반환합니다. |
add(startRow, startColumn, endRow, endColumn, hasHeaders) | int | 새 테이블을 생성합니다; 인덱스를 반환합니다. |
add(startCellName, endCellName, hasHeaders) | int | 셀 이름으로 새 테이블을 생성합니다; 인덱스를 반환합니다. |
removeAt(index) | void | 지정된 인덱스의 테이블을 제거합니다. |
parseTableStyleType(name) | TableStyleType | 문자열을 TableStyleType 열거형 값으로 변환합니다. |
tableStyleTypeName(type) | String | TableStyleType 열거형을 문자열 이름으로 변환합니다. |
ListColumn
| 메서드 | 반환 타입 | 설명 |
|---|---|---|
getId() | int | 1부터 시작하는 OOXML 열 식별자. |
getName() | String | 열 머리글 텍스트. |
setName(name) | void | 열 머리글 텍스트를 설정합니다. |
getTotalsCalculation() | TotalsCalculation | 합계 행 집계 함수. |
setTotalsCalculation(calc) | void | 합계 행 집계를 설정합니다. |
getTotalsRowLabel() | String | 총합 행에 사용자 정의 레이블. |
setTotalsRowLabel(label) | void | 총계 행 레이블을 설정합니다. |
getTotalsRowFormula() | String | 합계 행에 대한 사용자 지정 수식. |
setTotalsRowFormula(formula) | void | 합계 행 수식을 설정합니다. |
제한 사항
- 표 데이터 바인딩은 별도로 수정할 수 없으며; 표는 생성 시 지정된 범위를 포함합니다.
resize()을(를) 사용하여 포함된 범위를 조정하십시오. - 사용자 정의 표 스타일은
setTableStyleName()을(를) 통해 이름으로 참조하기 전에 워크북에 정의되어야 합니다.