【C#】Excel讀寫
首先,要關聯Microsoft.Office.Interop相關的檔案
必要的命名空間
using Microsoft.Office.Interop.Excel;操作介面 EXCEL執行緒,一般來說不管開幾個檔案都只需要一個程序,要記得釋放
Application App; //定義 App = new Application(); //宣告實體(開啟程式) App.Quit(); //關閉活頁簿
Workbook ExcelBook; //定義 //開啟舊檔 ExcelBook = App.Workbooks.Open(filenameOrFullpath , 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false); //變數說明:其中除了第一個"檔案路徑"之外, 一般只要注意第三個變數"是否唯獨"就好了 ExcelBook.Save(); //存檔(唯獨不適用) ExcelBook.Close(false,"",false); //關閉最後是檔案中的工作表及儲存格,這兩個型態可視為指標因此不需要釋放
Worksheet ExcelWorkSheet; //工作表 Range ExcelRange; //儲存格(範圍)透過檔案介面指向一個分頁
ExcelWorkSheet = ExcelBook.Worksheets[分頁];分頁可以是完整分頁名稱(字串),或是直接指定分頁的index(int) 透過分頁介面取得儲存格範圍
ExcelRange = ExcelWorkSheet.get_Range("A1","A1");儲存格操作都是以範圍進行,即使只有一個格子也是範圍型態 將目前範圍延伸至整行(方便搜尋)
ExcelRange = ExcelRange.EntireRow;同樣地也可以設定整列EntireColumn 從指定範圍搜尋特定字串
try{ //建議一定要用try catch,找不到的時候才不會跳出無法處理的錯誤 int matchIndex = (int)App.WorksheetFunction.Match( 搜尋的字串 , 範圍物件 , 0); //只要搜尋失敗,這後面的程式碼都不會執行而跳到catch }catch{ //在這裡針對錯誤的結果作處理 }找出最後一行的位置
int lastRow = ExcelWorkSheet.UsedRange.Rows.Count;這是最簡單的方法,但是要注意這個方法會包含被調整過但是沒資料的空白行 將指定的範圍(儲存格)文字提取
ExcelRange.Text.ToString();
沒有留言:
張貼留言