1. 程式人生 > >C# 在excel中查詢及替換資料

C# 在excel中查詢及替換資料

使用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"falsefalse); 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"falsefalse); 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()就可以了。