C#を使用してExcelドキュメントのデータを検索して置き換える方法

Excelを使用してデータを処理する場合、ワークシートに多くのコンテンツが含まれている原因で、ある探したいデータを1行ずつ手動で検索すると、精確に見つけるのがかなり困難になります。Microsoft Excelは、非常に強力なデータ処理機能である、「検索と置換」を提供しています。この機能により、必要なデータをすばやく検索し、1つ以上のセルのデータを一度に変更または更新することができます。しかし、アプリケーションを開発するために、プログラムで実装する必要がある場合があります。この記事では、C#を使用してExcelデータの検索および置換機能を実現する方法について説明します。

まずは必要なコンポーネントをインストールします:Free Spire.XLS for .NET

無料なので、気軽にダウンロードしてください。

 

ではExcelのテーブルのスクリーンショットをご覧ください:

f:id:uha_noki:20211116171552p:plain

今はA5およびA6セルの「Canada」を「British」に変更することを例にしよう。

詳細な手順

まず、新しいVisual C#コンソールプロジェクトを作成し、参照を追加して、次の名前空間を使用します。

using System.Drawing;

using Spire.Xls;

手順1  新しいWorkbookクラスのオブジェクトを作成し、Excelドキュメントをロードします

Workbook workbook = new Workbook();

workbook.LoadFromFile("sample.xlsx");

手順2 テキストを置き換えようとするワークシートを取得します。これが最初のワークシートです。

Worksheet sheet = workbook.Worksheets[0];

手順3  Worksheet.FindAllString()メソッドを呼び出すことにより、Canadaというテキストを検索し、すべてをBritishに置き換えます。ここでは、ハイライトの色も設定して、置き換えられたデータをすばやく簡単に見つけるためです。

CellRange ranges = sheet.FindAllString("Canada",false,false);

foreach (CellRange range in ranges)

{

    range.Text = "British";

    range.Style.Color = Color.LawnGreen;

}

手順4 ドキュメントを保存して改めて開きます。

workbook.SaveToFile("変更したファイル.xlsx");

System.Diagnostics.Process.Start("変更したファイル.xlsx");

変更した効果は以下のようになります:

f:id:uha_noki:20211116171647p:plain

全てのコードはここです:

using System.Drawing;

using Spire.Xls;

 

namespace SearchAndReplace

{

    class Program

    {

        static void Main(string args)

        {

            Workbook workbook = new Workbook();

            workbook.LoadFromFile("sample.xlsx");

 

            Worksheet sheet = workbook.Worksheets[0];

            CellRange[] ranges = sheet.FindAllString("Canada",false,false);

            foreach (CellRange range in ranges)

            {

                range.Text = "British";

                range.Style.Color = Color.LawnGreen;

            }

            workbook.SaveToFile("変更したファイル.xlsx");

            System.Diagnostics.Process.Start("変更したファイル.xlsx");

        }

    }

}

以上です、簡単な方法なのでよく理解いただきましたよね、最後まで読んでいただきありがとうございます。