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

Добавление или удаление автофильтра в файлах Excel — установка API

Aspose.Cells for .NET API позволяет эффективно работать с электронными таблицами Excel. Вы можете программно создавать, редактировать или манипулировать XLS, XLSX и другими поддерживаемыми форматами с минимальным кодом. Вы можете загрузить и установить пакет MSI или ZIP из раздела загрузок или просто установить его через галерею NuGet в своем решении. Например, вы можете легко установить его в своей среде с помощью следующей команды:

Install-Package Aspose.Cells -Version 20.9.0

После успешной установки API давайте приступим к некоторым важным и полезным вариантам использования.

Применение автофильтра к ячейкам в файлах Excel с помощью С#

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

  1. Откройте файл Excel и получите доступ к Рабочему листу.
  2. Создайте Автофильтр, указав определенный диапазон ячеек
  3. Сохранить выходной файл XLS/XLSX

Фрагмент кода показывает, как применить автофильтр к ячейкам в файле Excel с помощью C#:

// Создание экземпляра объекта Workbook
// Открытие файла Excel через файловый поток
Aspose.Cells.Workbook workbook = new Aspose.Cells.Workbook(dataDir + "book1.xls");

// Доступ к первому рабочему листу в файле Excel
Aspose.Cells.Worksheet worksheet = workbook.Worksheets[0];

// Создание автофильтра путем указания диапазона ячеек строки заголовка
worksheet.AutoFilter.Range = "A1:B1";

// Сохранение измененного файла Excel
workbook.Save(dataDir + "output.xlsx");

Вы можете заметить автофильтр, добавленный в исходный файл XLSX, на снимке экрана ниже:

Автофильтр-Excel-Csharp

Добавить автофильтр даты в XLSX с помощью С#

Данные в файлах Excel часто содержат информацию, связанную с датами. Иногда вам может понадобиться изучить информацию, основанную на различных периодах времени, которые можно определить по датам. Например, давайте рассмотрим случай, когда нам нужно отфильтровать данные, относящиеся к январю 2018 года, тогда вам необходимо выполнить следующие шаги:

  1. Загрузить таблицу ввода
  2. Доступ к рабочему листу
  3. Добавьте фильтр даты и сохраните выходной файл

Следующий пример кода следует этим шагам и показывает, как добавить автофильтр даты в файлы Excel с помощью C#.

// Создание экземпляра объекта Workbook
// Открытие файла Excel через файловый поток
Workbook workbook = new Workbook(dataDir + "Date.xlsx");

// Доступ к первому рабочему листу в файле Excel
Worksheet worksheet = workbook.Worksheets[0];

// Вызовите функцию AddDateFilter, чтобы применить фильтр
worksheet.AutoFilter.AddDateFilter(0, DateTimeGroupingType.Month, 2018, 1, 0, 0, 0, 0);

// Вызовите функцию обновления, чтобы обновить рабочий лист
worksheet.AutoFilter.Refresh();

// Сохранение измененного файла Excel
workbook.Save(dataDir + "FilteredDate.xlsx");

Добавить автофильтр динамической даты в XLSX с помощью С#

Поскольку мы уже обсуждали сценарий фильтрации данных по датам. Однако в некоторых случаях сценарий даты может быть немного более общим. Например, нам нужно отфильтровать данные за январь независимо от года. Такие требования можно легко обработать с помощью динамического фильтра даты, выполнив следующие действия:

  1. Загрузить исходный файл XLSX
  2. Доступ к рабочему листу
  3. Установите DynamicFilter для января.
  4. Сохранить выходной лист Excel

Этот пример является продолжением приведенного выше примера, где приведенный ниже фрагмент кода показывает, как добавить автофильтр динамической даты в файл Excel с помощью C#:

// Создание экземпляра объекта Workbook
// Открытие файла Excel через файловый поток
Workbook workbook = new Workbook(dataDir + "Date.xlsx");

// Доступ к первому рабочему листу в файле Excel
Worksheet worksheet = workbook.Worksheets[0];

// Вызовите функцию DynamicFilter, чтобы применить фильтр
worksheet.AutoFilter.DynamicFilter(0, DynamicFilterType.January);

// Вызовите функцию обновления, чтобы обновить рабочий лист
worksheet.AutoFilter.Refresh();

// Сохранение измененного файла Excel
workbook.Save(dataDir + "FilteredDynamicDate.xlsx");

Применить автофильтр пользовательских номеров в XLSX с C#

Вы можете фильтровать данные на основе пользовательского диапазона чисел, используя Aspose.Cells для .NET API. Например, когда компании необходимо получить доступ к тому, сколько ее сотрудников достигли целей продаж. Точно так же может быть много возможностей, где этот метод фильтрации может помочь. Предположим, что нам нужно отфильтровать все данные, где числа находятся в диапазоне от 5 до 10 включительно, тогда вам необходимо выполнить следующие шаги:

  1. Создайте экземпляр объекта Workbook и загрузите входной файл
  2. Добавить пользовательский числовой фильтр на определенный лист
  3. Сохранить выходной файл Excel

На основе этих шагов в следующем коде показано, как добавить автофильтр по пользовательскому номеру с помощью C#:

// Создание экземпляра объекта Workbook
// Открытие файла Excel через файловый поток
Workbook workbook = new Workbook(dataDir + "Number.xlsx");

// Доступ к первому рабочему листу в файле Excel
Worksheet worksheet = workbook.Worksheets[0];

// Вызов пользовательской функции для применения фильтра
worksheet.AutoFilter.Custom(0, FilterOperatorType.GreaterOrEqual, 5, true, FilterOperatorType.LessOrEqual, 10);

// Вызовите функцию обновления, чтобы обновить рабочий лист
worksheet.AutoFilter.Refresh();

// Сохранение измененного файла Excel
workbook.Save(dataDir + "FilteredNumber.xlsx");

Добавить пользовательский автофильтр с содержит с помощью C#

Сделав еще один шаг дальше от настраиваемого автофильтра по номерам, давайте узнаем, как добавить настраиваемый автофильтр, который можно использовать для отслеживания определенного текста с помощью оператора «Содержит фильтр». Может быть полезно искать слова, в которых какой-либо текст частично или полностью присутствует в данных. Для выполнения этих требований необходимо выполнить следующие шаги:

  1. Загрузить входной файл Excel с данными
  2. Укажите диапазон AutoFilter и FilterOperatorType.
  3. Сохранить выходной файл XLSX

В приведенном ниже фрагменте кода показано, как добавить пользовательский автофильтр с параметром «Содержит» с помощью C#:

// Создание экземпляра объекта Workbook, содержащего образцы данных
Workbook workbook = new Workbook(dataDir + "sourseSampleCountryNames.xlsx");

// Доступ к первому рабочему листу в файле Excel
Worksheet worksheet = workbook.Worksheets[0];

// Создание автофильтра путем указания диапазона ячеек
worksheet.AutoFilter.Range = "A1:A18";

// Инициализировать фильтр для строк, содержащих строку «Ba»
worksheet.AutoFilter.Custom(0, FilterOperatorType.Contains, "Ba");

//Обновите фильтр, чтобы показать/скрыть отфильтрованные строки
worksheet.AutoFilter.Refresh();

// Сохранение измененного файла Excel
workbook.Save(dataDir + "outSourseSampleCountryNames.xlsx");

Удалить или удалить автофильтр в Excel с помощью С#

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

  1. Загрузить исходный файл XLSX
  2. Переберите каждый рабочий лист и удалите автофильтры.
  3. Сохранить выходной файл

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

// Создание экземпляра объекта Workbook
// Открытие файла Excel
Workbook workbook = new Workbook(dataDir + "output.xlsx");
// Итерация по каждому рабочему листу
foreach (var sheet in workbook.Worksheets)
{
    // Удалить автофильтры
    sheet.RemoveAutoFilter();
}
// Сохраните книгу
workbook.Save(dataDir + "AutoFilter_Removed.xlsx", SaveFormat.Xlsx);

Вывод

Aspose.Cells for .NET API предлагает различные готовые функции. Добавление, удаление или удаление автофильтра с помощью C# в .NET Framework выполняется просто и легко. Мы подробно обсудили несколько возможностей. Если у вас есть какие-либо сомнения или сомнения, свяжитесь с нами на Форум бесплатной поддержки.

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