Группировка строк и создание промежуточных итогов

Группировка строк

Для группировки определенного количества строк:

  1. Добавьте элемент управления Aspose.Cells.GridWeb на веб-форму.
  2. Получите доступ к листу.
  3. Выберите желаемое количество ячеек в строках.
  4. Сгруппируйте строки.

Когда строки сгруппированы, в верхней части строки сводки отображается кнопка развернуть/свернуть. Можно изменить установку направления. Свойство WebWorksheet.IsSummaryRowBelow - это логическое свойство. Установите его в false (по умолчанию) и строка сводки будет над детальными строками. Установите его в true, и строка сводки будет под детальными строками. Щелкните кнопку развернуть/свернуть, чтобы развернуть или свернуть сгруппированные строки.

В следующем примере группируются строки с 2-й по 10-ю.

Группировка строк

todo:image_alt_text

 // Accessing the reference of the worksheet that is currently active

GridWorksheet sheet = GridWeb1.WorkSheets[GridWeb1.ActiveSheetIndex];

// Group the rows

sheet.Cells.GroupRows(1, 9);

Вложенная группировка строк

Вы можете создавать уровни организации, группируя набор строк. Вы можете группировать строки среди сгруппированных строк. В следующем примере показано вложение сгруппированных строк.

Группировка строк

todo:image_alt_text

 // Accessing the reference of the worksheet that is currently active

GridWorksheet sheet = GridWeb1.WorkSheets[GridWeb1.ActiveSheetIndex];

// Group the rows

sheet.Cells.GroupRows(1, 9);

// Create nested group of rows

sheet.Cells.GroupRows(4, 6);

Внутренний процесс: Как работает контроль?

У каждой строки листа есть номер контура. Значение по умолчанию номера контура равно нулю. Каждый раз, когда вы группируете строки, номер контура увеличивается на 1. Вы можете получить номер контура, вызвав метод GridWorksheet.Cells.GetRowOutlineLevel().

Снять группировку строк

Aspose.Cells.GridWeb позволяет снимать группировку сгруппированных строк.

Для снятия группировки определенного количества строк:

  1. Выберите ряд ячеек в строках листа для снятия группировки.
  2. Снимите группировку строк.

В следующем примере строки с 2-й по 10-ю снимают группировку.

 // Accessing the reference of the worksheet that is currently active

GridWorksheet sheet = GridWeb1.WorkSheets[GridWeb1.ActiveSheetIndex];

// Ungroup the rows

sheet.Cells.UngroupRows(1, 9); 

Создание итогов

Функция итогов контроля может группировать строки на листе с определенным столбцом и вычислять суммарное значение столбцов. Aspose.Cells.GridWeb может автоматически вычислять значения итогов для списка. При реализации итогов контроль контурирует список, чтобы вы могли отображать и скрывать детальные строки для каждого итога. Перед добавлением итогов отсортируйте по полю, по которому вы хотите делать итоги. Для создания итогов используйте любую версию перегруженного метода WebWorksheet.CreateSubtotal.

 public void CreateSubtotal

(

           int columnNameRowIndex,

           int dataRows,

           int groupByColumnIndex,

           SubtotalFunction subtotalFunction,

           int[] subtotalColumnIndexList

);

Список параметров

Название параметра Описание
1 columnNameRowIndex Индекс строки названия столбца.
2 dataRows Количество строк с данными.
3 groupByColumnIndex Индекс столбца столбца для группировки.
4 subtotalFunction Перечисление типа функции итогов.
5 subtotalColumnIndexList Индексы столбцов для подсчета итогов.

Список функций подытога

Существует несколько типов функций подытога, поддерживаемых перечислением {[SubtotalFunction}}:

Имя функции Описание
1 AVERAGE Вычисляет среднее значение.
2 COUNT Подсчитывает числовые значения в ячейках.
3 COUNTA Подсчитывает непрерывные данные в ячейках.
4 MAX Вычисляет наибольшее значение.
5 MIN Вычисляет наименьшее значение.
6 PRODUCT Вычисляет произведение значений.
7 SUM Суммирует значения.
В следующем примере генерируются промежуточные итоги, которые вычисляют непрерывные значения, сгруппированные по второму столбцу в листе.

Промежуточные итоги

todo:image_alt_text

 sheet.CreateSubtotal(0, sheet.Cells.MaxRow, 1, SubtotalFunction.COUNTA, new int[] { 1, 2, 3, 4, 5 });

Удаление промежуточных итогов

Чтобы удалить промежуточный итог, используйте метод WebWorksheet.RemoveSubtotal. Ниже приведен пример удаления промежуточных итогов.

 // Accessing the reference of the worksheet that is currently active

GridWorksheet sheet = GridWeb1.WorkSheets[GridWeb1.ActiveSheetIndex];

//Remove the subtotals

sheet.RemoveSubtotal();

О функции SUBTOTAL

Элемент управления GridWeb использует функцию формулы SUBTOTAL для вычисления значения промежуточного итога.

Синтаксис: SUBTOTAL (номер_функции, ссылка1, ссылка2, …)

номер_функции - число, определяющее тип функции, используемой при вычислении промежуточного итога.

1 СРЕДНЕЕ
2 COUNT
3 COUNTA
4 MAX
5 MIN
6 PRODUCT
7 SUM
ref1, ref2, области, которые должны быть итоговыми. Если ref1, ref2, … содержат другие функции итогов, ссылочные ячейки игнорируются, чтобы избежать повторных вычислений.