使用Excel處理數據時,有時候工作表內容很多,如果手動地一行一行的找數據很難發現它們在哪個地方。微軟Excel給我們提供了一個很強大的數據處理功能-查找和替換,通過這個功能,我們可以快速地找到想要的數據並一次性對一個或多個單元格的數據進行更改或更新。但對於開發來說,有時我們可能需要通過編程的方式來實現它。這篇文章講述的是怎樣使用C#來實現excel的查找和替換功能。
這是Excel工作表的截圖:
我需要上表格中單元格A5和A6的數據Canada替換爲British。
詳細步驟:
首先,新建一個visual C#控制檯項目,添加引用並使用如下命名空間:
1 2 | using System.Drawing; using Spire.Xls; |
步驟1:新建一個Workbook類的對象,並加載excel文檔。
1 2 | Workbook workbook = new Workbook(); workbook.LoadFromFile( "統計表.xlsx" ); |
步驟2:獲取需要替換文本的工作表,此處是第一個工作表。
1 | Worksheet sheet = workbook.Worksheets[0]; |
步驟3:通過調用Worksheet.FindAllString()方法,查找文本Canada並將它們全部替換爲British。這裏我還設置了高亮色,方便快速地找到替換過的數據。
1 2 3 4 5 6 | CellRange[] ranges = sheet.FindAllString( "Canada" , false , false ); foreach (CellRange range in ranges) { range.Text = "British" ; range.Style.Color = Color.LawnGreen; } |
步驟4:保存文件並重新打開。
1 2 | workbook.SaveToFile( "替換.xlsx" ); System.Diagnostics.Process.Start( "替換.xlsx" ); |
效果圖:
全部代碼:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | 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()就可以了。