В этой статье вы узнаете, как создать сводную таблицу в Excel и программно отсортировать или скрыть данные или элементы сводной таблицы на C# с помощью Aspose.Cells for .NET — .NET API для создания электронных таблиц Excel и управления ими. не требуя Microsoft Excel.
Сводные таблицы в Excel
Вещи стали цифровыми, и автоматизированные решения для создания и обработки электронных таблиц Excel широко используются. Сводные таблицы в Excel широко используются для обобщения и анализа данных. Принимая во внимание, что сортировка данных в сводных таблицах очень полезна для критической проверки огромных данных в электронных таблицах Excel. Сортировка данных в сводных таблицах может применяться для упорядочения элементов в алфавитном порядке (AZ или ZA) для текстовых значений или от самого высокого к самому низкому или от самого низкого к самому высокому значению в случае чисел.
Основываясь на важности сводных таблиц 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");
Выход
Сортировка сводной таблицы по значениям поля строки в 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");
Выход
Сортировка сводной таблицы по значениям поля столбца в 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 на основе определенных условий, которые вы хотите применить. В следующем примере кода показано, как скрыть определенные строки в сводной таблице с помощью 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, используя документацию.