C# 获取Excel的指定单元格的值

时间:2022-11-15 18:31:39

获取Excel指定单元格示例

 ///<summary>
/// 获取指定文件的指定单元格内容
///</summary>
/// <param name="fileName">文件路径</param>
/// <param name="row">行号</param>
/// <param name="column">列号</param>
/// <returns>返回单元指定单元格内容</returns>
public string getExcelOneCell(string fileName, int row, int column)
{
Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook wbook = app.Workbooks.Open(fileName, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing);

Microsoft.Office.Interop.Excel.Worksheet workSheet = (Microsoft.Office.Interop.Excel.Worksheet)wbook.Worksheets[1];

string temp = ((Microsoft.Office.Interop.Excel.Range)workSheet.Cells[row, column]).Text.ToString();

wbook.Close(false, fileName, false);
app.Quit();
NAR(app);
NAR(wbook);
NAR(workSheet);
return temp;

}

//此函数用来释放对象的相关资源
private void NAR(Object o)
{
try
{
//使用此方法,来释放引用某些资源的基础 COM 对象。 这里的o就是要释放的对象
System.Runtime.InteropServices.Marshal.ReleaseComObject(o);
}
catch { }
finally
{
o = null; GC.Collect();
}
}

调用示例:

//获取指定单元格示例(获取第三行第二列的值)
string str = getExcelOneCell(@"F:\67250464X9.xls", 3, 2);

若是批量取多个Excel的指定单元格值,则用程序获取文件夹下所有Excel,循环调用此方法即可