В этой статье вы узнаете, как создать сводную таблицу в Excel и программно отсортировать или скрыть данные или элементы сводной таблицы на C# с помощью Aspose.Cells for .NET — .NET API для создания электронных таблиц Excel и управления ими. не требуя Microsoft Excel.

Сводные таблицы в Excel

Вещи стали цифровыми, и автоматизированные решения для создания и обработки электронных таблиц Excel широко используются. Сводные таблицы в Excel широко используются для обобщения и анализа данных. Принимая во внимание, что сортировка данных в сводных таблицах очень полезна для критической проверки огромных данных в электронных таблицах Excel. Сортировка данных в сводных таблицах может применяться для упорядочения элементов в алфавитном порядке (AZ или ZA) для текстовых значений или от самого высокого к самому низкому или от самого низкого к самому высокому значению в случае чисел.

Основываясь на важности сводных таблиц Excel, эта статья призвана показать вам, как:

  • создать сводную таблицу в Excel,
  • сортировать сводную таблицу по значениям поля строки,
  • сортировать сводную таблицу по значениям полей столбца,
  • и скрыть строки сводной таблицы.

Для демонстрации во всех примерах будет использоваться следующий образец электронной таблицы Excel.

Создать сводную таблицу в Excel на С#

Создайте сводную таблицу в Excel с помощью C#

Давайте сначала посмотрим, как создать сводную таблицу Excel на C# с помощью Aspose.Cells для .NET. Создав сводную таблицу, мы скроем строки и отсортируем данные на основе столбца или полей строки. В следующем примере кода показано, как создать сводную таблицу Excel.

Workbook wb = new Workbook("SampleExcel.xlsx");

// Получение ссылки на недавно добавленный рабочий лист
Worksheet sheet = wb.Worksheets[0];

PivotTableCollection pivotTables = sheet.PivotTables;

// исходная сводная таблица
// Добавление сводной таблицы на лист
int index = pivotTables.Add("=Sheet1!A1:C10", "E3", "PivotTable2");

//Доступ к экземпляру недавно добавленной сводной таблицы
PivotTable pivotTable = pivotTables[index];

// Отображение общих итогов для строк.
pivotTable.RowGrand = false;
pivotTable.ColumnGrand = false;

// Перетаскивание первого поля в область строки.
pivotTable.AddFieldToArea(PivotFieldType.Row, 1);
PivotField rowField = pivotTable.RowFields[0];
rowField.IsAutoSort = true;
rowField.IsAscendSort = true;

// Перетаскивание второго поля в область столбца.
pivotTable.AddFieldToArea(PivotFieldType.Column, 0);
PivotField colField = pivotTable.ColumnFields[0];
colField.NumberFormat = "dd/mm/yyyy";
colField.IsAutoSort = true;
colField.IsAscendSort = true;

// Перетаскивание третьего поля в область данных.
pivotTable.AddFieldToArea(PivotFieldType.Data, 2);

pivotTable.RefreshData();
pivotTable.CalculateData();
// end of исходная сводная таблица

//Сохранение файла Excel
wb.Save("output.xlsx");

Выход

Создать сводную таблицу в Excel в ASP.NET

Сортировка сводной таблицы по значениям поля строки в C#

В предыдущем разделе мы просто создали сводную таблицу, используя данные из электронной таблицы Excel. Теперь мы создадим еще одну сводную таблицу и применим сортировку к данным. В следующем примере кода создается и сортируется сводная таблица по значениям поля строки “SeaFood”.

Workbook wb = new Workbook("SampleExcel.xlsx");

// Получение ссылки на рабочий лист Excel.
Worksheet sheet = wb.Worksheets[0];

PivotTableCollection pivotTables = sheet.PivotTables;

// Добавление сводной таблицы на лист Excel.
int index = pivotTables.Add("=Sheet1!A1:C10", "E3", "PivotTable2");

// Доступ к экземпляру только что добавленной сводной таблицы.
PivotTable pivotTable = pivotTables[index];

// Отображение общих итогов для строк.
pivotTable.RowGrand = false;
pivotTable.ColumnGrand = false;

// Перетаскивание первого поля в область строки.
pivotTable.AddFieldToArea(PivotFieldType.Row, 1);
PivotField rowField = pivotTable.RowFields[0];
rowField.IsAutoSort = true;
rowField.IsAscendSort = true;

// Перетаскивание второго поля в область столбца.
pivotTable.AddFieldToArea(PivotFieldType.Column, 0);
PivotField colField = pivotTable.ColumnFields[0];
colField.NumberFormat = "dd/mm/yyyy";
colField.IsAutoSort = true;
colField.IsAscendSort = true;
colField.AutoSortField = 0;

// Перетаскивание третьего поля в область данных.
pivotTable.AddFieldToArea(PivotFieldType.Data, 2);

pivotTable.RefreshData();
pivotTable.CalculateData();

// Сохранение файла Excel.
wb.Save("output.xlsx");

Выход

Создание и сортировка сводной таблицы в Excel

Сортировка сводной таблицы по значениям поля столбца в C#

Вы также можете отсортировать данные в сводной таблице по значениям полей столбца. В следующем образце кода C# применяется сортировка по значениям поля столбца “28/07/2000”.

Workbook wb = new Workbook("SampleExcel.xlsx");

// Получение ссылки на рабочий лист Excel.
Worksheet sheet = wb.Worksheets[0];

PivotTableCollection pivotTables = sheet.PivotTables;

// Добавление сводной таблицы на лист Excel.
int index = pivotTables.Add("=Sheet1!A1:C10", "E3", "PivotTable2");

// Доступ к экземпляру только что добавленной сводной таблицы.
PivotTable pivotTable = pivotTables[index];

// Отображение общих итогов для строк.
pivotTable.RowGrand = false;
pivotTable.ColumnGrand = false;

// Перетаскивание первого поля в область строк.
pivotTable.AddFieldToArea(PivotFieldType.Row, 1);
PivotField rowField = pivotTable.RowFields[0];
rowField.IsAutoSort = true;
rowField.IsAscendSort = true;
colField.AutoSortField = 0;

// Перетаскивание второго поля в область столбца.
pivotTable.AddFieldToArea(PivotFieldType.Column, 0);
PivotField colField = pivotTable.ColumnFields[0];
colField.NumberFormat = "dd/mm/yyyy";
colField.IsAutoSort = true;
colField.IsAscendSort = true;

// Перетаскивание третьего поля в область данных.
pivotTable.AddFieldToArea(PivotFieldType.Data, 2);

pivotTable.RefreshData();
pivotTable.CalculateData();

// Сохранение файла Excel.
wb.Save("output.xlsx");

Выход

Скрыть данные в сводной таблице в Excel

Скрыть строки сводной таблицы в C#

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

Workbook workbook = new Workbook("output.xlsx");
Worksheet worksheet = workbook.Worksheets[0];

var pivotTable = worksheet.PivotTables[0];
var dataBodyRange = pivotTable.DataBodyRange;
int currentRow = 1;
int rowsUsed = dataBodyRange.EndRow;

// Сортировка значений по убыванию
PivotField field = pivotTable.RowFields[0];
field.IsAutoSort = true;
field.IsAscendSort = false;
field.AutoSortField = 0;

pivotTable.RefreshData();
pivotTable.CalculateData();

// Скрытие строк со значением меньше 15
while (currentRow < rowsUsed)
{
	Cell cell = worksheet.Cells[currentRow, 2];
	double score = Convert.ToDouble(cell.Value);
	if (score < 15)
	{
		worksheet.Cells.HideRow(currentRow);
	}
	currentRow++;
}

pivotTable.RefreshData();
pivotTable.CalculateData();

// Сохранение файла Excel
workbook.Save("PivotTableHideAndSort.xlsx");

Ознакомьтесь с документацией Aspose.Cells для .NET, чтобы узнать больше о том, как работать со сводными таблицами в Excel с помощью C# в любом приложении на основе .NET. Свяжитесь с нами на нашем форуме в случае возникновения каких-либо вопросов или запросов.

Вывод

В этой статье вы узнали, как работать со сводными таблицами в файлах Excel с помощью C#. В частности, вы видели, как создавать сводные таблицы и сортировать или скрывать данные в сводных таблицах в Excel с помощью C#. Вы можете узнать больше об Aspose.Cells для .NET, используя документацию.

Смотрите также