チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

チュートリアル».NET»Spire.XLS for .NET»データ»C# で Excel フィルターを自動解除する方法
2025-05-14

C# で Excel フィルターを自動解除する方法

Excel のフィルター機能(オートフィルター)は、データの絞り込みや分析に便利な機能です。しかし、データの確認が終わったり、元の状態でファイルを共有したりする場合は、フィルターを解除する必要があります。

この記事では、.NET アプリケーション内で Spire.XLS for .NET を使用し、Excel ファイルのフィルターを自動的に解除する方法をご紹介します。単一のシートだけでなく、複数ファイルをバッチ処理するケースにも対応可能です。

目次

フィルターを解除する理由

Excel ファイルのフィルターを解除する主な理由は次のとおりです:

  • フィルター適用中に非表示になっている全データを再表示する
  • データの印刷や資料化の準備
  • 閲覧者が意図しない部分的なデータ表示を防ぐ

つまり、オートフィルターの解除は、データの可視性と一貫性を保つために重要です。

Spire.XLS を使ったフィルター解除手順

ライブラリの導入

まずは NuGet 経由で Spire.XLS for .NET をインストールします。

PM> Install-Package Spire.XLS

軽量な処理だけでよい場合は、無料版の Free Spire.XLS for .NET でも可能です。

PM> Install-Package FreeSpire.XLS

また、Spire.XLS for .NET または Free Spire.XLS for .NET をダウンロードし、手動でインストールすることもできます。

主なメソッドとプロパティ

メソッド / プロパティ 説明
Workbook.LoadFromFile() Excel ファイルの読み込み
Workbook.Worksheets[] ワークシートの取得
Worksheet.AutoFilters.Clear() オートフィルターをすべて解除
Worksheet.AutoFilters.Range オートフィルター範囲の指定
Workbook.SaveToFile() 編集後のファイル保存

C# 実装例:オートフィルターをすべて解除

以下は、Excel シート上のオートフィルターをすべて解除する C# コード例です:

  • C#
using Spire.Xls;

// ワークブックのインスタンスを作成
Workbook workbook = new Workbook();

// Excelワークブックを読み込む
workbook.LoadFromFile("Sample.xlsx");

// ワークシートを取得
Worksheet sheet = workbook.Worksheets[0];

// オートフィルターを削除
sheet.AutoFilters.Clear();

// ワークブックを保存
workbook.SaveToFile("output/すべてのExcelフィルタを削除.xlsx");
workbook.Dispose();

適用前後の Excel ワークシートの比較

C#を使用してすべてのフィルタを削除する前と後のExcelワークシート

特定列のフィルター解除(範囲の再設定)

Excel のオートフィルターは、連続した列範囲に適用されるため、特定の列だけを解除することは直接できません。代わりに、解除したい列をフィルター範囲から除いたうえで、再設定する必要があります。

以下はその手順です:

  • C#
using Spire.Xls;

// ワークブックのインスタンスを作成
Workbook workbook = new Workbook();

// Excelワークブックを読み込む
workbook.LoadFromFile("Sample.xlsx");

// ワークシートを取得
Worksheet sheet = workbook.Worksheets[0];

// 現在のフィルターを削除してすべてのデータを表示(データの欠落を防ぐため)
sheet.AutoFilters.Clear();

// フィルター範囲をリセット
sheet.AutoFilters.Range = sheet.Range[1, 1, 13, 7];

// ワークブックを保存
workbook.SaveToFile("output/Excel フィルタのリセット.xlsx");
workbook.Dispose();

注意:フィルター範囲を再設定する前に、既存のオートフィルターを解除しておかないと、フィルター済みのデータが範囲外になり、正しく表示されない可能性があります。

適用前後の Excel ワークシートの比較

C#を使用した特定のフィルター列を削除する前後のExcelワークシート

Spire.XLS を使うメリット

  • 高速かつ自動化しやすい:Excel を開かずに処理可能
  • .NET Framework / .NET Core 両対応
  • Microsoft Office 非依存:Office がインストールされていなくても動作
  • 業務利用に適した安定性:バッチ処理や自動化システムにも最適

よくある質問(FAQ)

C# で Excel のフィルターを解除するにはどうすればよいですか?

AutoFilters.Clear() メソッドを使用することで、対象のワークシートに設定されたすべてのオートフィルターを解除できます。

プログラムから Excel のフィルターを一括解除する一番簡単な方法は?

Spire.XLS for .NET を使えば、数行の C# コードで Excel を開かずにフィルター解除が可能です。

特定の列だけフィルターを解除できますか?

オートフィルターは連続する列に適用されるため、特定列のみを解除することはできません。代わりに一度すべてのフィルターを解除し、対象外の列を除いた範囲で再設定します。

Spire.XLS に無料版はありますか?

はい、Free Spire.XLS for .NET という無料版があります。商用以外の用途であれば、ウォーターマークなしで使用できます。

機能制限のない評価版を希望する場合は、このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。も可能です。

まとめ

C# と Spire.XLS for .NET を使えば、Excel ファイルのフィルター解除をスムーズに自動化できます。レポートや資料をクリアな状態で出力したい場合など、業務効率化に役立ちます。

Read 164 times