Робота з таблицями

Робота з таблицями

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Порядкована колекція стовпків в таблиці. Ітерабельна з доступом до підрахунку та індексу.
TableStyleTypeEnum, що ідентифікує вбудований стиль таблиці Excel (Light 121, Medium 1 ?? 28, Dark 1 11 або Custom/None).
TotalsCalculationEnum для функції агрегації на рядку загальних таблиць (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().

Див. також

 Українська