Робота з таблицями
Робота з таблицями
Aspose.Cells FOSS for Java supports Excel tables (also known as ListObjects or Ви можете створити нові таблиці з діапазонів клітин, перевірити існуючих таблиць, налаштувати рядки заголовків та суми, застосовувати вбудовані стилі таблиці;, Доступ до окремих стовпків, і перетворити таблиці назад в нормальні діапазони. Первинний пункт входу - ListObjectCollection, доступний через: Worksheet.getListObjects().
Огляд
Таблиці на табличному листі управляються через систему: ListObjectCollection повернутий Worksheet.getListObjects().Кожна з них. ListObject представляє одну таблицю Excel і висвітлює свою назву відображення, коментар, межі діапазону клітин, колекцію стовпків, стиль налаштування та видимості рядків заголовку/сукупності.
Створіться нова таблиця з: ListObjectCollection.add(startRow, startColumn, endRow, endColumn, hasHeaders), яка повертає нульовий індекс новоствореної таблиці. Альтернатива Перевантаження приймає рядки назви клітин: ListObjectCollection.add(startCellName, endCellName, hasHeaders).
Ключові класи
| Class | Опис |
|---|---|
ListObject | Представляє одну таблицю Excel. Викладання getDisplayName(), getComment(), координати діапазону, колекція стовпків, тип стилю та видимості рядка заголовку/сукупності. |
ListObjectCollection | Збір усіх таблиць на робочому листі. Підтримки getCount(), індексировані та названі пошуком через get(), add(), remove(), і стилізовані помічники конверсії. |
ListColumn | Представляє один колона в таблиці. Виявляє ідентифікатор, ім’я і настройки розрахунку дорівню сторінок колонн. |
ListColumnCollection | Порядкована колекція стовпків в таблиці. Ітерабельна з доступом до підрахунку та індексу. |
TableStyleType | Enum, що ідентифікує вбудований стиль таблиці Excel (Light 121, Medium 1 ?? 28, Dark 1 11 або Custom/None). |
TotalsCalculation | Enum для функції агрегації на рядку загальних таблиць (SUM, COUNT, AVERAGE, MAX, MIN, STD_DEV, VAR, Count_NUMS, CUSTOM, NONE). |
Доступ до таблиць на планшеті
Відновити ListObjectCollection від будь-якого Worksheet через: Worksheet.getListObjects().Використовуйте. ListObjectCollection.getCount() визначити: До окремих таблиць можна отримати доступ за допомогою нульового індексу через: ListObjectCollection.get(index) або за показовим іменем через: 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 enum включає в себе Light (121), 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) перетворювати між enum і його представлення струн.
Робота з столовими колонками
Доступ до окремих стовпків через: ListObject.getListColumns(), що повертає ListColumnCollection.Кожна з них. ListColumn експонує:
ListColumn.getId()однобазова ідентифікатор стовпаків 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).
Автофільтр на таблицях
Показувати або видалити стрілки автоматичного фільтрування стовплів:
ListObject.showAutoFilter()відображати стрілки фільтру на рядку заголовка.ListObject.removeAutoFilter()приховувати стрілки фільтру.
Реферат на API
ListObject
| Method | Тип повернення | Опис |
|---|---|---|
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
| Method | Тип повернення | Опис |
|---|---|---|
getCount() | int | Кількість таблиць на листці. |
get(index) | ListObject | Повертає таблицю з даним індексом на нульовій основі. |
get(name) | ListObject | Повертає таблицю з даним іменем відображення. |
add(startRow, startColumn, endRow, endColumn, hasHeaders) | int | Створює нову таблицю; повертає її індекс. |
add(startCellName, endCellName, hasHeaders) | int | Створює нову таблицю з імен клітин; повертає її індекс. |
removeAt(index) | void | Видає таблицю з даного індексу. |
parseTableStyleType(name) | TableStyleType | Перераховує струнку в TableStyleType значення enum. |
tableStyleTypeName(type) | String | Перераховує a TableStyleType enum до його назви послідовності. |
ListColumn
| Method | Тип повернення | Опис |
|---|---|---|
getId() | int | Однобакова ідентифікатор стовпаків OOXML. |
getName() | String | Текст заголовку колонки. |
setName(name) | void | Налаштовує текст заголовку стовпа. |
getTotalsCalculation() | TotalsCalculation | Функція агрегації рядків сукупних. |
setTotalsCalculation(calc) | void | Налаштовує сукупність рядків. |
getTotalsRowLabel() | String | Націлена етикетка в рядку з загальними. |
setTotalsRowLabel(label) | void | Назначає етикет рядки з загальними числами. |
getTotalsRowFormula() | String | Зазвичай формулу для ряду суми. |
setTotalsRowFormula(formula) | void | Назначає формулу рядка суми. |
Обмеження
- Зв’язки даних з таблиці не можуть бути окремо змінені; таблиця охоплює діапазон: зазначено в момент створення.
resize()для регулювання покритого діапазону. - Персональні стилі таблиць повинні бути визначені в робочому книзі перед посиланням на них. по імені через:
setTableStyleName().