Пользовательская сортировка сводной таблицы программным способом в .NET

Введение

Когда дело доходит до работы с Excel в среде .NET, одна библиотека выделяется среди остальных: Aspose.Cells. Разве вам не нравится, когда инструмент позволяет вам программно манипулировать электронными таблицами? Именно это и делает Aspose.Cells! В сегодняшнем уроке мы глубоко погружаемся в мир сводных таблиц и показываем, как реализовать пользовательскую сортировку программным способом с помощью этой универсальной библиотеки.

Предпосылки

Прежде чем мы засучим рукава и начнем писать код, убедитесь, что у вас есть несколько вещей:

  1. Visual Studio: Вам понадобится рабочая версия Visual Studio. Это игровая площадка, где происходит вся магия.
  2. .NET Framework: Знакомство с программированием .NET является обязательным. Независимо от того, являетесь ли вы энтузиастом .NET Core или .NET Framework, вы готовы к работе.
  3. Библиотека Aspose.Cells: Вам необходимо установить библиотеку Aspose.Cells. Вы можете получить ее изСсылка для скачивания и добавьте его в свой проект.
  4. Базовые знания о сводных таблицах: вам не обязательно быть экспертом, но небольшие знания о том, как работают сводные таблицы, будут полезны при изучении этого руководства.
  5. Образец файла Excel: Создайте образец файла Excel с именемSamplePivotSort.xlsx готово к тестированию в вашем рабочем каталоге.

Импортные пакеты

После того, как вы отсортировали все ваши предварительные условия, первым шагом будет импорт необходимых пакетов. Для этого включите следующие строки в верхней части вашего кода:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Aspose.Cells;
using Aspose.Cells.Pivot;

Этот пакет предоставляет все необходимые функции для работы с файлами Excel с помощью Aspose.Cells.

Хорошо, давайте перейдем к самой интересной части! Мы разобьем процесс создания сводной таблицы и применения пользовательской сортировки на управляемые шаги.

Шаг 1: Настройте рабочую тетрадь

Для начала нам нужно настроить нашу рабочую тетрадь. Вот как это сделать:

string sourceDir = "Your Document Directory";
string outputDir = "Your Document Directory";
Workbook wb = new Workbook(sourceDir + "SamplePivotSort.xlsx");

На этом этапе мы инициализируем новыйWorkbook экземпляр с путем к нашему файлу Excel. Это будет холстом, на котором оживет наша сводная таблица.

Шаг 2: Доступ к рабочему листу

Далее нам нужно получить доступ к рабочему листу, куда мы добавим нашу сводную таблицу.

Worksheet sheet = wb.Worksheets[0];
PivotTableCollection pivotTables = sheet.PivotTables;

Здесь мы берем первый рабочий лист в нашей рабочей тетради и вызываемPivotTableCollection. Эта коллекция позволяет нам управлять всеми сводными таблицами на этом рабочем листе.

Шаг 3: Создайте свою первую сводную таблицу

Теперь пришло время создать нашу сводную таблицу.

int index = pivotTables.Add("=Sheet1!A1:C10", "E3", "PivotTable1");
PivotTable pivotTable = pivotTables[index];

Мы добавляем новую сводную таблицу на наш рабочий лист, указывая диапазон данных и его местоположение. “E3” указывает, где мы хотим, чтобы начиналась наша сводная таблица. Затем мы ссылаемся на эту новую сводную таблицу, используя ее индекс.

Шаг 4: Настройте параметры сводной таблицы

Давайте настроим нашу сводную таблицу! Это означает контроль таких аспектов, как общие итоги и расположение полей.

pivotTable.RowGrand = false;
pivotTable.ColumnGrand = false;
pivotTable.AddFieldToArea(PivotFieldType.Row,1);
PivotField rowField = pivotTable.RowFields[0];
rowField.IsAutoSort = true;
rowField.IsAscendSort = true;

Мы гарантируем, что общие итоги для строк и столбцов не отображаются, что может сделать данные чище. Затем мы добавляем первое поле в область строк, включив автоматическую сортировку и сортировку по возрастанию.

Шаг 5: Добавьте столбцы и поля данных

После того, как строки настроены, давайте добавим столбцы и поля данных.

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);

Шаг 6: Обновите и рассчитайте сводную таблицу

После добавления всех необходимых полей давайте убедимся, что наша сводная таблица обновлена и готова.

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

Эти методы обновляют данные и пересчитывают их, гарантируя, что все данные актуальны и правильно отображаются в нашей сводной таблице.

Шаг 7: Пользовательская сортировка на основе значений полей строк

Давайте добавим немного изюминку, отсортировав сводную таблицу по определенным значениям, например, «Морепродукты».

index = pivotTables.Add("=Sheet1!A1:C10", "E10", "PivotTable2");
pivotTable = pivotTables[index];

Мы повторяем процесс, создавая еще одну сводную таблицу и настраивая ее аналогично первой. Теперь мы можем настроить ее дальше:

pivotTable.AddFieldToArea(PivotFieldType.Row,1);
rowField = pivotTable.RowFields[0];
rowField.IsAutoSort = true;
rowField.IsAscendSort = true;

Шаг 8: Дополнительная настройка сортировки. Давайте попробуем другой метод сортировки на основе определенной даты:

// Добавление еще одной сводной таблицы для сортировки по дате
index = pivotTables.Add("=Sheet1!A1:C10", "E18", "PivotTable3");
pivotTable = pivotTables[index];
// Повторите настройки строк и столбцов, аналогичные предыдущим шагам.

Вы просто повторяете тот же процесс, создавая третью сводную таблицу с критериями сортировки, соответствующими вашим потребностям.

Шаг 9: Сохраните WorkbookTime, чтобы сохранить всю проделанную нами тяжелую работу!

wb.Save(outputDir + "out.xlsx");
PdfSaveOptions options = new PdfSaveOptions();
options.OnePagePerSheet = true;
wb.Save(outputDir + "out.pdf", options);

Здесь вы сохраняете книгу как файл Excel и PDF.PdfSaveOptions обеспечивает лучшее форматирование, гарантируя, что каждый лист будет отображаться на отдельной странице при конвертации.

Шаг 10: Завершение. Завершите все это, дав пользователю знать, что все отлично.

Console.WriteLine("PivotTableCustomSort executed successfully.");

Заключение

К настоящему моменту вы узнали, как использовать возможности Aspose.Cells для создания и настройки сводных таблиц в ваших приложениях .NET. От начальной настройки до пользовательской сортировки, каждый шаг объединяется для обеспечения бесшовного опыта. Независимо от того, нужно ли вам представлять годовые данные о продажах или отслеживать статистику запасов, эти навыки пригодятся вам!

Часто задаваемые вопросы

Что такое сводная таблица?

Сводная таблица — это инструмент обработки данных в Excel, который позволяет обобщать и анализировать данные, предоставляя гибкий способ легкого извлечения информации.

Как установить Aspose.Cells?

Вы можете установить его через NuGet в Visual Studio или загрузить его напрямую с сайтаСсылка для скачивания.

Существует ли пробная версия Aspose.Cells?

Да! Вы можете попробовать бесплатно, посетивБесплатная пробная ссылка.

Можно ли сортировать несколько полей в сводной таблице?

Конечно! Вы можете добавлять и сортировать несколько полей в соответствии с вашими требованиями.

Где я могу найти поддержку Aspose.Cells?

Сообщество довольно активно, и вы можете задавать вопросы на их форуме.здесь.