在專案中,使用NuGet套件管理員來安裝Microsoft.Office.Interop.Excel
套件。這個套件將幫助我們與Excel進行互動。
Microsoft.Office.Interop.Excel
using Excel = Microsoft.Office.Interop.Excel;
using System;
namespace ExcelReaderExample
{
class Program
{
static void Main(string[] args)
{
// 設定Excel檔案的路徑
string excelFilePath = @"C:\path\to\your\file.xlsx";
// 建立一個新的Excel Application物件
Excel.Application excelApp = new Excel.Application();
// 打開Excel檔案
Excel.Workbook workbook = excelApp.Workbooks.Open(excelFilePath);
// 假設Excel檔案只有一個工作表,直接使用索引1來取得該工作表
Excel.Worksheet worksheet = workbook.Worksheets[1];
// 讀取資料
int rowCount = worksheet.UsedRange.Rows.Count;
int colCount = worksheet.UsedRange.Columns.Count;
for (int row = 1; row <= rowCount; row++)
{
for (int col = 1; col <= colCount; col++)
{
// 使用Cells物件來取得單元格的值
Excel.Range cell = worksheet.Cells[row, col];
string cellValue = cell.Value != null ? cell.Value.ToString() : "";
Console.Write(cellValue + "\t");
}
Console.WriteLine();
}
// 關閉Excel檔案
workbook.Close();
excelApp.Quit();
// 釋放資源
System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet);
System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);
System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp);
Console.ReadLine();
}
}
}
這個範例中,我們使用Microsoft.Office.Interop.Excel
套件來打開Excel檔案,讀取資料並輸出到控制台。記得要替換excelFilePath
為你要讀取的實際Excel檔案的路徑。
請留意我們在最後的程式碼中釋放了COM物件的資源,這是很重要的一步。Excel物件是COM物件,如果未正確釋放資源,可能會導致資源洩漏或程式當機。因此,當不再使用這些COM物件時,務必確保呼叫Marshal.ReleaseComObject
。