XLSXおよびXLSファイル形式は、巨大なデータを操作するために頻繁に使用されます。同様に、オートフィルターはExcelファイルのデータを整理するために使用されます。 Aspose.Cells for .NET APIを使用すると、Excelファイルでオートフィルターを簡単に追加または削除できます。フィルタを使用して、いくつかのデータを定量化し、いくつかの意味のある情報を抽出できます。たとえば、組織は、戦略を考案して改善するために、売上が少ない月をフィルタリングしたいと考えています。この記事では、C#で自動フィルターを使用したデータフィルタリングについて説明します。

Excelファイルでのオートフィルターの追加または削除-APIのインストール

Aspose.Cells for .NET APIを使用すると、Excelスプレッドシートを効率的に操作できます。最小限のコードで、XLS、XLSX、およびその他のサポートされている形式をプログラムで作成、編集、または操作できます。 MSIまたはZIPパッケージはダウンロードセクションからダウンロードしてインストールするか、ソリューションのNuGetギャラリーからインストールできます。たとえば、次のコマンドを使用して、ご使用の環境に簡単にインストールできます。

Install-Package Aspose.Cells -Version 20.9.0

APIを正常にインストールしたら、いくつかの重要で便利なユースケースに進みましょう。

C#を使用してExcelファイルのセルにオートフィルターを適用する

Excelファイルの特定の範囲のセルにオートフィルターを適用できます。これにより、セルに数値が含まれている場合に、値を昇順または降順で並べ替えたり、他の数値フィルターを並べ替えたりすることができます。 C#を使用してExcelファイルにオートフィルターを適用するには、次の手順に従う必要があります。

  1. Excelファイルを開き、ワークシートにアクセスします。
  2. 特定のセル範囲を指定してAutoFilterを作成します
  3. 出力XLS/XLSXファイルを保存します

コードスニペットは、C#を使用してExcelファイルのセルにオートフィルターを適用する方法を示しています。

// 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ファイルに追加されたオートフィルターに気付くことができます。

AutoFilter-Excel-Csharp

C#を使用してXLSXに日付オートフィルターを追加する

Excelファイルのデータには、多くの場合、日付に関連する情報が含まれています。場合によっては、日付で識別できるさまざまな期間に基づいて情報を調べる必要があります。たとえば、2018年1月に関連するデータをフィルタリングする必要がある場合を考えてみましょう。その後、次の手順を実行する必要があります。

  1. 入力スプレッドシートを読み込む
  2. ワークシートへのアクセス
  3. 日付フィルターを追加し、出力ファイルを保存します

次のコードサンプルは、これらの手順に従い、C#を使用してExcelファイルに日付オートフィルターを追加する方法を示しています。

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

C#を使用してXLSXに動的日付オートフィルターを追加する

すでに説明したように、日付に基づいてデータをフィルタリングするシナリオ。ただし、一部のシナリオでは、日付シナリオももう少し一般的なものにすることができます。たとえば、年に関係なく、1月のデータを除外する必要があります。このような要件は、以下の手順を使用して動的日付フィルターで簡単に処理できます。

  1. 入力XLSXファイルをロードします
  2. ワークシートにアクセスする
  3. 1月のDynamicFilterを設定します
  4. 出力Excelシートを保存する

この例は、上記の例の続きです。以下のコードスニペットは、C#を使用してExcelファイルに動的な日付オートフィルターを追加する方法を示しています。

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

C#を使用してXLSXでカスタム番号オートフィルターを適用する

Aspose.Cells for .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#を使用してContainsを使用してカスタムオートフィルターを追加する

カスタム番号AutoFilterからさらに一歩進んで、ContainsFilterOperatorを使用して特定のテキストを追跡するために使用できるカスタムAutoFilterを追加する方法を学びましょう。データ内にテキストが部分的または完全に存在する単語を検索すると便利な場合があります。これらの要件を達成するには、次の手順に従う必要があります。

  1. 入力Excelファイルにデータをロードする
  2. AutoFilterの範囲とFilterOperatorTypeを指定します
  3. 出力XLSXファイルを保存します

以下のコードスニペットは、C#を使用してContainsを使用してカスタムオートフィルターを追加する方法を示しています。

// サンプルデータを含む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");

C#を使用してExcelでオートフィルターを削除または削除する

C#を使用してExcelファイルにオートフィルターを追加するさまざまなシナリオを学習したので、逆の方法を確認してみましょう。 Excelからオートフィルターを削除または削除するユースケースも同様に重要で重要です。 XLSXファイルからすべてのオートフィルターを削除するには、以下の手順に従う必要があります。

  1. 入力XLSXファイルをロードします
  2. 各ワークシートを繰り返し処理し、AutoFiltersを削除します
  3. 出力ファイルを保存する

次のコードスニペットは、C#を使用してExcelファイルからオートフィルターを削除する方法を示しています。

// 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は、すぐに使用できるさまざまな機能を提供します。 .NET FrameworkでC#を使用してオートフィルターを追加、削除、または削除するのは簡単です。いくつかの可能性について詳しく説明しました。ご不明な点やご不明な点がございましたら、無料サポートフォーラムまでお気軽にお問い合わせください。

関連項目