Làm việc với bảng

Làm việc với bảng

Aspose.Cells FOSS for Java supports Excel tables (also known as ListObjects or Bạn có thể tạo bảng mới từ các chuỗi ô, kiểm tra các bảng hiện có, thiết lập tiêu đề và tổng hàng, áp dụng phong cách bảng tích hợp, truy cập các cột cá nhân, và chuyển đổi bảng trở lại với phạm vi bình thường. Điểm đầu là ListObjectCollection,- Truy cập qua Worksheet.getListObjects().


Overview

Các bảng trên một tờ làm việc được quản lý thông qua ListObjectCollection Trở lại bởi Worksheet.getListObjects().Mỗi người ListObject - Có một bảng Excel và tiết lộ tên hiển thị, bình luận, giới hạn phạm vi ô, bộ sưu tập cột, phong cách cài đặt, và header/totals hàng hiển thị.

Một bảng mới được tạo ra với ListObjectCollection.add(startRow, startColumn, endRow, endColumn, hasHeaders), mà trả về chỉ số dựa trên không của bảng mới được tạo. một thay thế quá tải chấp nhận các dây tên ô: ListObjectCollection.add(startCellName, endCellName, hasHeaders).


Các Lớp Chính

ClassDescription
ListObjectHiển thị một bảng Excel duy nhất. getDisplayName(), getComment(), đường phối phạm vi, bộ sưu tập cột, kiểu phong cách và tầm nhìn hàng đầu / tổng.
ListObjectCollectionThu thập tất cả các bảng trên một sổ làm việc. hỗ trợ getCount(), indexed và named lookup via get(), add(), remove(), và các trợ lý chuyển đổi kiểu phong cách.
ListColumnHiển thị một cột trong bảng. Hiệu hiện ID cờ, tên và thiết lập tính toán tổng số.
ListColumnCollectionLập lệnh của các cột trong một bảng. Iterable với tính toán và truy cập chỉ số.
TableStyleTypeEnum xác định một phong cách bảng Excel tích hợp (Light 1–21, Medium 1 – 28, Dark 1-11 hoặc Custom/None).
TotalsCalculationEnum cho chức năng tổng hợp trên hàng tổng của một bảng (SUM, COUNT, AVERAGE, MAX, MIN, STD_DEV, VAR, CONTAIN_NUMS, CUSTOM, NONE).

Truy cập bảng trên một sổ làm việc

Retrieve các ListObjectCollection Từ bất kỳ Worksheet qua Worksheet.getListObjects().Sử dụng ListObjectCollection.getCount() để xác định có bao nhiêu bảng. các bảng cá nhân được truy cập bởi chỉ số dựa trên zero thông qua ListObjectCollection.get(index) hoặc bằng cách hiển thị tên qua 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());
}

Tạo một bàn mới

Sử dụng ListObjectCollection.add() để đặt một bảng trên phạm vi ô.The hasHeaders Parameters cho thấy liệu dòng đầu tiên của phạm vi có chứa Thẻ đầu Column.

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");

Kiểm tra tài sản bảng

Khi bạn giữ một ListObject Các tham khảo bạn có thể đọc:

  • ListObject.getDisplayName() - Tên của bảng hiển thị string.
  • ListObject.getComment() - Một bình luận tùy chọn liên quan đến bảng.
  • ListObject.getStartRow() / ListObject.getStartColumn() - Tầng trên bên trái của bảng.
  • ListObject.getEndRow() / ListObject.getEndColumn() - Các tế bào bên dưới phải của phạm vi bảng.
  • ListObject.isShowHeaderRow() - Nếu dòng đầu có thể nhìn thấy.
  • ListObject.isShowTotals() - Nếu tổng hàng có thể nhìn thấy.
  • ListObject.getListColumns() - The ListColumnCollection cho bàn.

Bảng phong cách

Sử dụng một bảng hình dạng built-in bằng cách sử dụng ListObject.setTableStyleType(TableStyleType). Các TableStyleType Enum bao gồm ánh sáng (1–21), trung bình (1 – 28) và tối (1-11) + Các biến thể NONECUSTOM.

ListObject table = ws.getListObjects().get(0);
table.setTableStyleType(TableStyleType.TABLE_STYLE_MEDIUM_2);

Thêm phong cách toggles kiểm soát hàng nhãn, cột nhã và nồng độ đầu tiên / cuối cùng:

  • ListObject.setShowTableStyleRowStripes(boolean)
  • ListObject.setShowTableStyleColumnStripes(boolean)
  • ListObject.setShowTableStyleFirstColumn(boolean)
  • ListObject.setShowTableStyleLastColumn(boolean)

Bạn cũng có thể đặt tên kiểu tùy chỉnh với ListObject.setTableStyleName(String).

Phương pháp giúp đỡ ListObjectCollection.parseTableStyleType(String)ListObjectCollection.tableStyleTypeName(TableStyleType) chuyển đổi giữa các Enum và biểu hiện string của nó.


Làm việc với các cột bảng

Truy cập các cột cá nhân thông qua ListObject.getListColumns(), mà trở lại a ListColumnCollection.Mỗi người ListColumn Hiển thị :

  • ListColumn.getId() - ID cột OOXML dựa trên một.
  • ListColumn.getName() / ListColumn.setName(String) - Thẻ đầu văn bản.
  • ListColumn.getTotalsCalculation() / ListColumn.setTotalsCalculation(TotalsCalculation) - chức năng tổng hợp cho dòng tổng.
  • ListColumn.getTotalsRowLabel() / ListColumn.setTotalsRowLabel(String) - Một nhãn tùy chỉnh trong dòng tổng.
  • ListColumn.getTotalsRowFormula() / ListColumn.setTotalsRowFormula(String) - Một công thức tùy chỉnh cho tổng hàng.
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());
}

Thiết lập Total Row

Khả năng cho phép tổng hàng với ListObject.setShowTotals(true), sau đó thiết lập per-column Tính năng tập hợp sử dụng các TotalsCalculation Enum ạ.

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");

Đổi lại và chuyển đổi bảng

Tải lại một bảng để bao gồm phạm vi tế bào khác nhau bằng cách sử dụng ListObject.resize(startRow, startColumn, endRow, endColumn, hasHeaders).

Chuyển đổi một bảng trở lại phạm vi tế bào bình thường với ListObject.convertToRange(). Điều này loại bỏ cấu trúc bảng trong khi giữ dữ liệu tế bào và định dạng.

Xóa một bảng hoàn toàn từ bộ sưu tập với ListObjectCollection.removeAt(index).


AutoFilter trên bảng

Hiển thị hoặc xóa các cột drop-down tự động lọc đạn trên một bảng:

  • ListObject.showAutoFilter() - Hiển thị các mũi tên lọc trên dòng đầu.
  • ListObject.removeAutoFilter() - ẩn các loại phím lọc.

Tóm tắt Tham chiếu API

ListObject

MethodLoại ReturnDescription
getDisplayName()StringNhìn tên của bàn.
setDisplayName(name)voidNhập tên hiển thị.
getComment()StringBình luận tùy chọn cho bảng.
setComment(comment)voidĐặt bình luận bảng.
getStartRow()intBắt đầu dòng chỉ số của bảng phạm vi.
getStartColumn()intBắt đầu chỉ số cột của phạm vi bảng.
getEndRow()intEnd line index của bảng phạm vi.
getEndColumn()intEnd column index của bảng phạm vi.
isShowHeaderRow()booleanHoặc có dòng đầu được nhìn thấy.
setShowHeaderRow(show)voidHiển thị hoặc ẩn dòng đầu.
isShowTotals()booleanHoặc toàn bộ hàng có thể nhìn thấy.
setShowTotals(show)voidHiển thị hoặc ẩn các hàng tổng.
getTableStyleType()TableStyleTypeThiết kế bảng nội thất.
setTableStyleType(type)voidCó một phong cách bàn được xây dựng.
getTableStyleName()StringTên bảng tùy chỉnh.
setTableStyleName(name)voidĐặt tên bàn theo kiểu tùy chỉnh.
getListColumns()ListColumnCollectionBộ sưu tập cột của bảng.
resize(...)voidĐặt lại bàn sang một phạm vi mới.
convertToRange()voidChuyển đổi bảng sang phạm vi bình thường.
showAutoFilter()void- Tải về Auto-Filter Arrow.
removeAutoFilter()void- Dấu chặn các loại lọc tự động.

ListObjectCollection

MethodLoại ReturnDescription
getCount()intSố lượng bảng trên bảng tính.
get(index)ListObjectTrả lại bảng ở chỉ số dựa trên zero.
get(name)ListObjectTrở lại bảng với tên hiển thị đã được cung cấp.
add(startRow, startColumn, endRow, endColumn, hasHeaders)intTạo một bảng mới; trả lại chỉ số của nó.
add(startCellName, endCellName, hasHeaders)intTạo một bảng mới từ tên ô; trả về chỉ số của nó.
removeAt(index)voidXóa bảng trên chỉ số đó.
parseTableStyleType(name)TableStyleTypeChuyển đổi một string sang a TableStyleType giá trị enum.
tableStyleTypeName(type)Stringchuyển đổi a TableStyleType Enum đến tên string của nó.

ListColumn

MethodLoại ReturnDescription
getId()intMột cơ sở OOXML cột ID.
getName()StringThẻ Text Header.
setName(name)voidNhập văn bản đầu cột.
getTotalsCalculation()TotalsCalculationTotails line aggregation chức năng.
setTotalsCalculation(calc)voidTạo tổng hàng tập hợp.
getTotalsRowLabel()StringĐánh giá theo dòng tổng số.
setTotalsRowLabel(label)voidĐặt toàn bộ dòng nhãn.
getTotalsRowFormula()StringCông thức tùy chỉnh cho tổng hàng.
setTotalsRowFormula(formula)voidĐặt tổng dòng công thức.

Limitations

  • Các kết nối dữ liệu bảng không thể thay đổi riêng biệt; bảng bao gồm phạm vi Thời gian sử dụng: Sử dụng resize() - Thay đổi phạm vi được bao phủ.
  • Các phong cách bảng tùy chỉnh phải được xác định trong sổ làm việc trước khi đề cập đến chúng Tên qua via setTableStyleName().

See Also

 Tiếng Việt