チュートリアル

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

チュートリアル».NET»Spire.XLS for .NET»データ»C#/VB.NET:Excel でデータを検索して置換する方法
2023-05-30

C#/VB.NET:Excel でデータを検索して置換する方法

Excel の「検索と置換」機能は、大規模な Excel スプレッドシートを編集する際に不可欠なツールです。この機能により、ユーザーはワークシートまたは指定されたセル範囲内で特定の値を検索し、新しい値で元の値を迅速に置き換えることができます。この機能によって手動の煩雑な検索を回避し、作業効率を向上させることができます。この記事では、Spire.XLS for .NET を使用して、C# および VB.NET でプログラムによって Excel のデータを検索して置換する方法を紹介します。

Spire.XLS for .NET をインストールします

まず、Spire.XLS for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。

PM> Install-Package Spire.XLS

Excel でワークシート内のデータを検索して置換する

Spire.XLS for.NET には、Worksheet.FindAllString(string stringValue, bool formula, bool formulaValue) メソッドが用意されており、Excel で特定の数値を含むセルを検索できます。その後、CellRange.Text プロパティを使用して値を更新します。具体的な手順は次のとおりです。

  • Workbook クラスのインスタンスを初期化します。
  • Workbook.LoadFromFile(string fileName) メソッドを使用して Excel ファイルを読み込みます。
  • Workbook.Worksheets[int index] プロパティを使用して、特定のワークシートを取得します。
  • Worksheet.FindAllString(string stringValue, bool formula, bool formulaValue) メソッドを使用して、ワークシート内の特定の値を含むセルを検索します。
  • 見つかったセルをループします。
  • CellRange.Text プロパティを使用して、各セルの値を更新します。
  • CellRange.Style.Color プロパティを使用して、更新されたセルの背景を設定します。
  • Workbook.SaveToFile(string fileName, ExcelVersion version) メソッドを使用して、結果ファイルを特定の場所に保存します。
  • C#
  • VB.NET
using Spire.Xls;
using System.Drawing;

namespace ReplaceDataInWorksheet
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //Workbookクラスのインスタンスを初期化する
            Workbook workbook = new Workbook();
            //Excelファイルを読み込む
            workbook.LoadFromFile(@"Sample.xlsx");

            //最初のシートを取得する
            Worksheet worksheet = workbook.Worksheets[0];

            //ワークシート内の特定の文字列値「総額」を持つセルを検索する
            CellRange[] cells = worksheet.FindAllString("総額", true, true);

            //見つかったセルをループする
            foreach (CellRange cell in cells)
            {
                //セルの値を別の値に置き換える
                cell.Text = "差額";
                //セルの背景色を設定する
                cell.Style.Color = Color.Yellow;
            }

            //結果ファイルを保存する
            workbook.SaveToFile("ReplaceDataInWorksheet.xlsx", ExcelVersion.Version2016);
            workbook.Dispose();
        }
    }
}
Imports Spire.Xls
Imports System.Drawing

Namespace ReplaceDataInWorksheet
    Friend Class Program
        Private Shared Sub Main(ByVal args As String())
            'Workbookクラスのインスタンスを初期化する
            Dim workbook As Workbook = New Workbook()
            'Excelファイルを読み込む
            workbook.LoadFromFile("Sample.xlsx")

            '最初のシートを取得する
            Dim worksheet As Worksheet = workbook.Worksheets(0)

            'ワークシート内の特定の文字列値「総額」を持つセルを検索する
            Dim cells As CellRange() = worksheet.FindAllString("総額", True, True)

            '見つかったセルをループし、セルの値を別の値に置き換える
            For Each cell As CellRange In cells
                'Replace the value of the cell with another value
                cell.Text = "差額"
                'セルの背景色を設定する
                cell.Style.Color = Color.Yellow
            Next

            '結果ファイルを保存する
            workbook.SaveToFile("ReplaceDataInWorksheet.xlsx", ExcelVersion.Version2016)
            workbook.Dispose()
        End Sub
    End Class
End Namespace

C#/VB.NET:Excel でデータを検索して置換する方法

Excel で特定のセル範囲のデータを検索して置換する

CellRange.FindAllString(string stringValue, bool formula, bool formulaValue) メソッドを使用して、特定の値を含むセルをセル範囲で検索できます。その後、CellRange.Text プロパティを使用して、以前の値を別の値に置き換えます。具体的な手順は次のとおりです。

  • Workbook クラスのインスタンスを初期化します。
  • Workbook.LoadFromFile(string fileName) メソッドを使用して Excel ファイルを読み込みます。
  • Workbook.Worksheets[int index] プロパティを使用して、特定のワークシートを取得します。
  • Worksheet.Range[string rangeName] プロパティを使用して、ワークシートの特定のセル範囲を取得します。
  • CellRange.FindAllString(string stringValue, bool formula, bool formulaValue) メソッドを使用して、セル範囲内の特定の値を持つセルを検索します。
  • 見つかったセルをループします。
  • CellRange.Text プロパティを使用して、見つかった各セルの値を別の値に置き換えます。
  • CellRange.Style.Color プロパティを使用して、更新されたセルの背景を設定します。
  • Workbook.SaveToFile(string fileName, ExcelVersion version) メソッドを使用して、結果ファイルを特定の場所に保存します。
  • C#
  • VB.NET
using Spire.Xls;
using System.Drawing;

namespace ReplaceDataInCellRange
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //Workbookクラスのインスタンスを初期化する
            Workbook workbook = new Workbook();
            //Excelファイルを読み込む
            workbook.LoadFromFile(@"Sample.xlsx");

            //最初のシートを取得する
            Worksheet worksheet = workbook.Worksheets[0];

            //特定のセル範囲を取得する
            CellRange range = worksheet.Range["A3:A5"];            

            //特定の値「総額」を持つセルをセル範囲で検索する
            CellRange[] cells = range.FindAllString("総額", true, true);

            //見つかったセルをループする
            foreach (CellRange cell in cells)
            {
                //セルの値を別の値に置き換える
                cell.Text = "差額";
                //セルの背景色を設定する
                cell.Style.Color = Color.Yellow;
            }

            //結果ファイルを保存する
            workbook.SaveToFile("ReplaceDataInCellRange.xlsx", ExcelVersion.Version2016);
            workbook.Dispose();
        }
    }
}
Imports Spire.Xls
Imports System.Drawing

Namespace ReplaceDataInCellRange
    Friend Class Program
        Private Shared Sub Main(ByVal args As String())
            'Workbookクラスのインスタンスを初期化する
            Dim workbook As Workbook = New Workbook()
            'Excelファイルを読み込む
            workbook.LoadFromFile("Sample.xlsx")

            '最初のシートを取得する
            Dim worksheet As Worksheet = workbook.Worksheets(0)

            '特定のセル範囲を取得する
            Dim range As CellRange = worksheet.Range("A3:A5")

            '特定の値「総額」を持つセルをセル範囲で検索する
            Dim cells As CellRange() = range.FindAllString("総額", True, True)

            '見つかったセルをループする
            For Each cell As CellRange In cells
                'セルの値を別の値に置き換える
                cell.Text = "差額"
                'セルの背景色を設定する
                cell.Style.Color = Color.Yellow
            Next

            '結果ファイルを保存する
            workbook.SaveToFile("ReplaceDataInCellRange.xlsx", ExcelVersion.Version2016)
            workbook.Dispose()
        End Sub
    End Class
End Namespace

C#/VB.NET:Excel でデータを検索して置換する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Read 541 times