У цій статті ви дізнаєтеся, як створити зведену таблицю в Excel на C#. Крім того, ми розглянемо, як програмно сортувати або приховувати дані зведеної таблиці за допомогою Aspose.Cells for .NET – API .NET для створення електронних таблиць Excel і керування ними без використання Microsoft Excel.

Створення зведеної таблиці в Excel C#

Зведені таблиці в Excel

Широко використовуються автоматизовані рішення для створення та обробки електронних таблиць Excel. Зведені таблиці в Excel широко використовуються для узагальнення та аналізу даних. Тоді як сортування даних у зведених таблицях дуже корисно для критичного аналізу величезних даних в електронних таблицях Excel. Сортування даних у зведених таблицях можна застосувати для впорядкування елементів в алфавітному порядку (AZ або ZA) для текстових значень або від найбільшого до найменшого або від найменшого до найбільшого значення у випадку чисел.

Виходячи з важливості зведених таблиць Excel, ця стаття має на меті показати вам, як:

Бібліотека C# .NET для створення зведених таблиць Excel – встановлення

Щоб створити зведені таблиці у файлах Excel, спочатку ми встановимо Aspose.Cells for .NET. Ви можете завантажити його DLL або встановити його з NuGet.

PM> NuGet\Install-Package Aspose.Cells 

Створення зведеної таблиці в Excel на C#

Давайте спочатку перевіримо, як створити зведену таблицю Excel на C# за допомогою Aspose.Cells for .NET. Створивши зведену таблицю, ми сховаємо рядки та відсортуємо дані на основі стовпців або полів рядків. Для демонстрації в усіх прикладах використовується наведений нижче зразок електронної таблиці Excel.

Створення зведеної таблиці в Excel на C#

У наведеному нижче прикладі коду показано, як створити зведену таблицю Excel у C#.

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

Створення та сортування зведеної таблиці Excel за рядками

У попередньому розділі ми просто створили зведену таблицю, використовуючи дані в електронній таблиці 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

Сортування зведеної таблиці 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

Ви можете приховати рядки у зведеній таблиці 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 безкоштовно

Ви можете отримати безкоштовну тимчасову ліцензію, щоб використовувати Aspose.Cells for .NET без будь-яких обмежень оцінки.

Висновок

У цій статті ви дізналися, як створювати зведені таблиці у файлах Excel за допомогою C#. Крім того, ви бачили, як сортувати або приховувати дані у зведених таблицях у Excel за допомогою C#.

Ознайомтеся з бібліотекою C# .NET Excel

Перегляньте документацію Aspose.Cells for .NET, щоб дізнатися більше про те, як працювати зі зведеними таблицями в Excel за допомогою C# у будь-якій програмі на основі .NET. Зв’яжіться з нами на нашому форумі, якщо виникнуть запитання чи запити.

Дивись також