У цій статті ви дізнаєтеся, як створити зведену таблицю в Excel на C#. Крім того, ми розглянемо, як програмно сортувати або приховувати дані зведеної таблиці за допомогою Aspose.Cells for .NET – API .NET для створення електронних таблиць Excel і керування ними без використання Microsoft Excel.
Зведені таблиці в Excel
Широко використовуються автоматизовані рішення для створення та обробки електронних таблиць Excel. Зведені таблиці в Excel широко використовуються для узагальнення та аналізу даних. Тоді як сортування даних у зведених таблицях дуже корисно для критичного аналізу величезних даних в електронних таблицях Excel. Сортування даних у зведених таблицях можна застосувати для впорядкування елементів в алфавітному порядку (AZ або ZA) для текстових значень або від найбільшого до найменшого або від найменшого до найбільшого значення у випадку чисел.
Виходячи з важливості зведених таблиць Excel, ця стаття має на меті показати вам, як:
- Встановлення - бібліотека C# .NET для створення зведених таблиць Excel
- Створення зведеної таблиці в Excel на C#
- Сортування зведеної таблиці Excel за значеннями поля рядка
- Сортування зведеної таблиці Excel за значеннями поля стовпця
- Приховати рядки зведеної таблиці 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#.
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 за рядками
У попередньому розділі ми просто створили зведену таблицю, використовуючи дані в електронній таблиці 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");
Вихід
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. Зв’яжіться з нами на нашому форумі, якщо виникнуть запитання чи запити.