如何从现有的Excel文件中读取单元格值

我想读取Excel文件中的每个单元格的值,但即使在NET中尝试不同的例子后,我无法获得单元格的值。 我没有得到下面的代码的结果,任何人可以回来这个。 我正在使用.net框架2.0

string filePath = "F:/BulkTest.xlsx"; Microsoft.Office.Interop.Excel.Application ExcelApp = new Microsoft.Office.Interop.Excel.Application(); ExcelApp.Visible = true; Microsoft.Office.Interop.Excel.Workbook wb = ExcelApp.Workbooks.Open(filePath, Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value); Microsoft.Office.Interop.Excel.Worksheet sh = (Microsoft.Office.Interop.Excel.Worksheet)wb.Sheets["Sheet1"]; Range excelRange = sh.UsedRange; for (int i=2; i<= excelRange.Count + 1 ; i++) { string values = sh.Cells[i,2].ToString(); } 

直到现在我正在尝试将单元格值直接转换为variables,现在我将尝试使用范围将单元格值传递给数组。 谢谢!!!! – Teja Varma 13分钟前

不,我甚至没有这个意思:)正如我在评论中提到的,你可以将整个范围存储在一个数组中。 这并不意味着你需要循环每个单元格来将其存储在一个数组中。 您可以直接将范围的值分配给数组。 看到这个例子。

 xlRng = xlWorkSheet.get_Range("A1", "A20"); Object arr = xlRng.Value; foreach (object s in (Array)arr) { MessageBox.Show(s.ToString()); } 

正确的答案是使用:

 Sheet.Cells[row,col].Value.ToString(); 

C#代码
testingOK

 string s = xlSheet.UsedRange.Cells[1, 7].Value.ToString(); //or string d = xlSheet.UsedRange.Cells[1, "G"].Value.ToString(); 

完整的代码

  Excel.Application xlApp = new Excel.Application(); Excel.Workbook xlBook; Excel.Worksheet xlSheet; string Path = System.IO.Path.GetDirectoryName(Application.ExecutablePath); xlBook = xlApp.Workbooks.Open(Path + "\\myfile.xlsx"); xlApp.Visible = true; xlSheet = xlBook.ActiveSheet; string s = xlSheet.UsedRange.Cells[1, 7].Value.ToString(); string d = xlSheet.UsedRange.Cells[1, "G"].Value.ToString(); xlBook.Close(); xlApp.Quit(); System.Runtime.InteropServices.Marshal.ReleaseComObject(xlSheet); System.Runtime.InteropServices.Marshal.ReleaseComObject(xlBook); System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp);