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