테이블 작업

표 작업

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) 변형과 NONECUSTOM이(가) 포함됩니다.

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)StringTableStyleType 열거형을 문자열 이름으로 변환합니다.

ListColumn

메서드반환 타입설명
getId()int1부터 시작하는 OOXML 열 식별자.
getName()String열 머리글 텍스트.
setName(name)void열 머리글 텍스트를 설정합니다.
getTotalsCalculation()TotalsCalculation합계 행 집계 함수.
setTotalsCalculation(calc)void합계 행 집계를 설정합니다.
getTotalsRowLabel()String총합 행에 사용자 정의 레이블.
setTotalsRowLabel(label)void총계 행 레이블을 설정합니다.
getTotalsRowFormula()String합계 행에 대한 사용자 지정 수식.
setTotalsRowFormula(formula)void합계 행 수식을 설정합니다.

제한 사항

  • 표 데이터 바인딩은 별도로 수정할 수 없으며; 표는 생성 시 지정된 범위를 포함합니다. resize()을(를) 사용하여 포함된 범위를 조정하십시오.
  • 사용자 정의 표 스타일은 setTableStyleName()을(를) 통해 이름으로 참조하기 전에 워크북에 정의되어야 합니다.

참조

 한국어