Группировка строк и создание промежуточных итогов
Aspose.Cells.GridWeb может создать сводку для ваших данных. Это позволяет отображать или скрывать уровни деталей, щелкая на символах сводки “+” и “-”, чтобы отображать только строки, содержащие сводки или заголовки разделов в листе. Вы можете использовать эти символы, чтобы просматривать детали под отдельной сводкой или заголовком.
При группировке строк важно выбирать только детальные строки, составляющие группу. Не включайте связанную сводку. Например, если строка 6 содержит итоги для данных строк с 3 по 5, выберите только строки с 3 по 5 для определения группы. Элемент управления Aspose.Cells.GridWeb отображает символы показать детали (+) и скрыть детали (-) рядом с заголовками строк, указывающими группы в листе.
Aspose.Cells.GridWeb также позволяет создавать промежуточные итоги на основе любого поля данных. Промежуточный итог не обязательно является суммой: он может быть средним, количественным, минимальным, максимальным или другим статистическим расчетом.
В этой теме рассматривается группировка строк и создание промежуточных итогов с использованием API Aspose.Cells.GridWeb. Разработчики могут легко группировать строки с любым уровнем вложенности и создавать промежуточные итоги.
Группировка строк
Для группировки определенного количества строк:
- Добавьте элемент управления Aspose.Cells.GridWeb на веб-форму.
- Получите доступ к листу.
- Выберите желаемое количество ячеек в строках.
- Сгруппируйте строки.
Когда строки сгруппированы, в верхней части строки сводки отображается кнопка развернуть/свернуть. Можно изменить установку направления. Свойство WebWorksheet.IsSummaryRowBelow - это логическое свойство. Установите его в false (по умолчанию) и строка сводки будет над детальными строками. Установите его в true, и строка сводки будет под детальными строками. Щелкните кнопку развернуть/свернуть, чтобы развернуть или свернуть сгруппированные строки.
В следующем примере группируются строки с 2-й по 10-ю.
Группировка строк
// Accessing the reference of the worksheet that is currently active
GridWorksheet sheet = GridWeb1.WorkSheets[GridWeb1.ActiveSheetIndex];
// Group the rows
sheet.Cells.GroupRows(1, 9);
Вложенная группировка строк
Вы можете создавать уровни организации, группируя набор строк. Вы можете группировать строки среди сгруппированных строк. В следующем примере показано вложение сгруппированных строк.
Группировка строк
// 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 позволяет снимать группировку сгруппированных строк.
Для снятия группировки определенного количества строк:
- Выберите ряд ячеек в строках листа для снятия группировки.
- Снимите группировку строк.
В следующем примере строки с 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 | Суммирует значения. |
В следующем примере генерируются промежуточные итоги, которые вычисляют непрерывные значения, сгруппированные по второму столбцу в листе. |
Промежуточные итоги
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, … содержат другие функции итогов, ссылочные ячейки игнорируются, чтобы избежать повторных вычислений. |