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
| Class | Description |
|---|---|
ListObject | Hiể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. |
ListObjectCollection | Thu 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. |
ListColumn | Hiể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ố. |
ListColumnCollection | Lậ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ố. |
TableStyleType | Enum 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). |
TotalsCalculation | Enum 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()- TheListColumnCollectioncho 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ể NONE và CUSTOM.
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) và 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
| Method | Loại Return | Description |
|---|---|---|
getDisplayName() | String | Nhìn tên của bàn. |
setDisplayName(name) | void | Nhập tên hiển thị. |
getComment() | String | Bình luận tùy chọn cho bảng. |
setComment(comment) | void | Đặt bình luận bảng. |
getStartRow() | int | Bắt đầu dòng chỉ số của bảng phạm vi. |
getStartColumn() | int | Bắt đầu chỉ số cột của phạm vi bảng. |
getEndRow() | int | End line index của bảng phạm vi. |
getEndColumn() | int | End column index của bảng phạm vi. |
isShowHeaderRow() | boolean | Hoặc có dòng đầu được nhìn thấy. |
setShowHeaderRow(show) | void | Hiển thị hoặc ẩn dòng đầu. |
isShowTotals() | boolean | Hoặc toàn bộ hàng có thể nhìn thấy. |
setShowTotals(show) | void | Hiển thị hoặc ẩn các hàng tổng. |
getTableStyleType() | TableStyleType | Thiết kế bảng nội thất. |
setTableStyleType(type) | void | Có một phong cách bàn được xây dựng. |
getTableStyleName() | String | Tên bảng tùy chỉnh. |
setTableStyleName(name) | void | Đặt tên bàn theo kiểu tùy chỉnh. |
getListColumns() | ListColumnCollection | Bộ 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() | void | Chuyể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
| Method | Loại Return | Description |
|---|---|---|
getCount() | int | Số lượng bảng trên bảng tính. |
get(index) | ListObject | Trả lại bảng ở chỉ số dựa trên zero. |
get(name) | ListObject | Trở lại bảng với tên hiển thị đã được cung cấp. |
add(startRow, startColumn, endRow, endColumn, hasHeaders) | int | Tạo một bảng mới; trả lại chỉ số của nó. |
add(startCellName, endCellName, hasHeaders) | int | Tạo một bảng mới từ tên ô; trả về chỉ số của nó. |
removeAt(index) | void | Xóa bảng trên chỉ số đó. |
parseTableStyleType(name) | TableStyleType | Chuyển đổi một string sang a TableStyleType giá trị enum. |
tableStyleTypeName(type) | String | chuyển đổi a TableStyleType Enum đến tên string của nó. |
ListColumn
| Method | Loại Return | Description |
|---|---|---|
getId() | int | Một cơ sở OOXML cột ID. |
getName() | String | Thẻ Text Header. |
setName(name) | void | Nhập văn bản đầu cột. |
getTotalsCalculation() | TotalsCalculation | Totails line aggregation chức năng. |
setTotalsCalculation(calc) | void | Tạ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() | String | Cô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().