在使用Excel處理資料時,有時候工作表内容很多,如果手動地一行一行的找資料很難發現它們在哪個地方。微軟Excel給我們提供了一個很強大的資料處理功能-查找和替換,通過這個功能,我們可以快速地找到想要的資料并一次性對一個或多個單元格的資料進行更改或更新。但對于開發來說,有時我們可能需要通過程式設計的方式來實作它。這篇文章講述的是怎樣使用C#來實作excel的查找和替換功能。
這是Excel工作表的截圖:
我需要上表格中單元格A5和A6的資料Canada替換為British。
詳細步驟:
首先,建立一個visual C#控制台項目,添加引用并使用如下命名空間:
using System.Drawing;
using Spire.Xls;
步驟1:建立一個Workbook類的對象,并加載excel文檔。
Workbook workbook = new Workbook();
workbook.LoadFromFile("統計表.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");
效果圖:
全部代碼:
using System.Drawing;
using Spire.Xls;
namespace Excel查找和替換
{
class Program
{
static void Main(string[] args)
{
Workbook workbook = new Workbook();
workbook.LoadFromFile("統計表.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");
}
}
}
在這個項目中,我使用的是免費版
Spire.XLS,需要注意的是這個例子中我查找和替換的是string類型的資料,也就是文本,是以使用的是Worksheet.FindAllString()方法。如果要查找和替換數字,改為FindAllNumber()就可以了。