使用C#在Excel工作表中查找與替換數(shù)據(jù)的操作指南
在日常業(yè)務(wù)中,Excel 常用于保存產(chǎn)品清單、客戶信息、銷售記錄等結(jié)構(gòu)化數(shù)據(jù)。當(dāng)表格數(shù)據(jù)量較大時,手動查找與替換內(nèi)容不僅效率低,還容易出錯。此時借助 C# 程序自動化處理 可以快速完成數(shù)據(jù)的批量查找和更新,從而顯著提升工作效率。
本文將介紹如何使用 C# 在 Excel 中高效完成查找與替換操作,并結(jié)合一個實際業(yè)務(wù)場景表格數(shù)據(jù)進(jìn)行演示。示例涵蓋從加載文件、查找目標(biāo)數(shù)據(jù)到替換與保存完整流程。
本文所使用的方法需要用到 Free Spire.XLS for .NET,可通過 NuGet 安裝:
Install-Package FreeSpire.XLS
加載 Excel 工作簿
在操作前,需要先將目標(biāo) Excel 文件加載到內(nèi)存中。下面的示例展示了如何加載現(xiàn)有文件并獲取第一個工作表:
using Spire.Xls;
using System.Drawing; // 用于設(shè)置單元格顏色
// 創(chuàng)建 Workbook 實例
Workbook workbook = new Workbook();
// 從文件加載 Excel
workbook.LoadFromFile("Sample.xlsx");
// 獲取第一個工作表
Worksheet worksheet = workbook.Worksheets[0];
Console.WriteLine("Excel 文件加載成功!");查找數(shù)據(jù)并定位
Spire.XLS 提供了多種查找模式:精確匹配、模糊匹配、全字匹配以及正則表達(dá)式查找。通過 FindAllString() 方法,我們可以一次性獲取所有匹配單元格。
以下代碼示例查找所有包含“ProductA”的單元格,并將結(jié)果高亮顯示:
// 查找所有包含“ProductA”的單元格
CellRange[] ranges = worksheet.FindAllString("ProductA", false, false);
if (ranges.Length > 0)
{
Console.WriteLine($"找到 {ranges.Length} 處匹配項:");
foreach (CellRange range in ranges)
{
Console.WriteLine($" - 單元格: {range.RangeAddressLocal}, 內(nèi)容: {range.Text}");
// 高亮結(jié)果
range.Style.Color = Color.Yellow;
}
}
else
{
Console.WriteLine("未找到匹配項。");
}常見查找模式參數(shù)說明如下:
| 查找模式 | caseSensitive | wholeWord | regex | 示例 |
|---|---|---|---|---|
| 精確匹配 | true | true | false | 查找“Apple”,不會匹配“apple” |
| 模糊匹配 | false | false | false | 查找“apple”,會匹配“Apple Pie” |
| 全字匹配 | false | true | false | 查找“apple”,不會匹配“Apple Pie” |
| 正則表達(dá)式 | false | false | true | 查找 ^P.*tA$ (以 P 開頭,以 tA 結(jié)尾) |
替換與更新數(shù)據(jù)
在定位到數(shù)據(jù)后,可以直接修改單元格內(nèi)容實現(xiàn)替換。以下示例演示將“舊產(chǎn)品代碼”替換為“新產(chǎn)品代碼”,并用綠色高亮替換過的單元格:
string searchText = "舊產(chǎn)品代碼";
string replaceText = "新產(chǎn)品代碼";
// 查找目標(biāo)文本
CellRange[] foundRanges = worksheet.FindAllString(searchText, false, false);
if (foundRanges.Length > 0)
{
Console.WriteLine($"正在替換 {foundRanges.Length} 處 '{searchText}'...");
foreach (CellRange range in foundRanges)
{
range.Text = replaceText;
range.Style.Color = Color.LightGreen;
Console.WriteLine($" - 已將 {range.RangeAddressLocal} 替換為 '{replaceText}'。");
}
}
else
{
Console.WriteLine($"未找到 '{searchText}'。");
}如果只想替換單元格中的部分文本,可以使用 TextPartReplace() 方法:
// 假設(shè) A1 的內(nèi)容為 "Hello World"
worksheet.Range["A1"].TextPartReplace("World", "Spire");
Console.WriteLine($"A1 新內(nèi)容: {worksheet.Range["A1"].Text}"); // 輸出:Hello Spire保存修改結(jié)果
完成查找與替換后,需要保存 Excel 文件。可以保存為新文件,也可以覆蓋原文件:
// 保存為新文件
workbook.SaveToFile("Modified_SampleData.xlsx", ExcelVersion.Version2016);
Console.WriteLine("文件已保存為 Modified_SampleData.xlsx");
// 釋放資源
workbook.Dispose();替換結(jié)果演示
運行上述代碼后,將生成一個名為 Modified_SampleData.xlsx 的文件,替換前后內(nèi)容如下:

關(guān)鍵類與方法總結(jié)
為了更直觀地理解本文示例所用的核心 API,以下整理了常見類、方法與屬性,供快速參考:
| 類 / 屬性 / 方法 | 說明 |
|---|---|
Workbook | Excel 工作簿對象,用于加載、保存和管理多個工作表。 |
Worksheet | 工作表對象,代表 Excel 中的單個工作表。 |
CellRange | 單元格范圍對象,用于表示單個單元格或一組單元格。 |
Workbook.LoadFromFile() | 從指定路徑加載 Excel 文件。 |
Workbook.SaveToFile() | 將工作簿保存為指定文件,可指定 Excel 版本。 |
Worksheet.FindAllString() | 在工作表中查找指定文本,支持大小寫、全字匹配和正則表達(dá)式。 |
CellRange.Text | 獲取或設(shè)置單元格文本內(nèi)容。 |
CellRange.Style.Color | 設(shè)置單元格的背景顏色,用于高亮顯示查找或替換結(jié)果。 |
CellRange.TextPartReplace() | 替換單元格中部分字符串,而不是整個內(nèi)容。 |
總結(jié)
本文介紹了如何使用 C# 與 Spire.XLS for .NET 在 Excel 中實現(xiàn)高效的查找與替換操作。通過 FindAllString() 可以靈活查找單元格內(nèi)容,TextPartReplace() 則支持局部替換。結(jié)合實際業(yè)務(wù)表格數(shù)據(jù),開發(fā)者可以輕松擴展此功能,例如批量替換產(chǎn)品編碼、更新庫存信息或生成規(guī)范化報表。借助自動化方式處理 Excel,不僅節(jié)省時間,還能有效減少人工錯誤,提升整體數(shù)據(jù)處理質(zhì)量。
以上就是使用C#在Excel工作表中查找與替換數(shù)據(jù)的操作指南的詳細(xì)內(nèi)容,更多關(guān)于C# Excel工作表查找與替換數(shù)據(jù)的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
C# WinForms程序調(diào)用Python腳本的完整代碼案例
本文介紹了一個完整的C# WinForms應(yīng)用程序,該應(yīng)用程序通過下拉框選擇并執(zhí)行不同的Python腳本,文章詳細(xì)描述了項目結(jié)構(gòu)、Python腳本準(zhǔn)備、C#代碼實現(xiàn)、使用說明和配置說明,并提供了功能特點和擴展建議,需要的朋友可以參考下2025-11-11
C#中WPF ListView綁定數(shù)據(jù)的實例詳解
這篇文章主要介紹了C#中WPF ListView綁定數(shù)據(jù)的實例詳解的相關(guān)資料,希望通過本文能幫助到大家,讓大家理解掌握這部分內(nèi)容,需要的朋友可以參考下2017-10-10
C#正則表達(dá)式(Regex類)用法實例總結(jié)
正則表達(dá)式的主要作用是驗證字符串的值是否滿足一定的規(guī)則,在頁面輸入數(shù)據(jù)驗證方面的應(yīng)用比較多,下面這篇文章主要給大家介紹了關(guān)于C#正則表達(dá)式(Regex類)用法的相關(guān)資料,需要的朋友可以參考下2022-08-08

