如何读取单个Excel单元格的值

我有excel文件sheet1有一个值,我需要阅读第2行和第10列。这是我的代码。

Excel.Workbook excelWorkbook = excelApp.Workbooks.Open(workbookPath, 0, false, 5, "", "", false, Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false); Excel.Sheets excelSheets = excelWorkbook.Worksheets; string currentSheet = "Sheet1"; Excel.Worksheet excelWorksheet = (Excel.Worksheet)excelSheets.get_Item(currentSheet); var cell = (Excel.Range)excelWorksheet.Cells[10, 2]; 

获取Excel.Range的单元格对象后,我不知道如何读取该单元格的内容。 我试着把它转换成数组,并循环它,我试图转换为string数组等。我相信这是非常简单的。 有一个直接的方法来获得一个string的单元格值吗?

你需要把它转换成一个string(不是一个string数组),因为它是一个单一的值。

 var cellValue = (string)(excelWorksheet.Cells[10, 2] as Excel.Range).Value; 
 using Microsoft.Office.Interop.Excel; string path = "C:\\Projects\\ExcelSingleValue\\Test.xlsx "; Application excel = new Application(); Workbook wb = excel.Workbooks.Open(path); Worksheet excelSheet = wb.ActiveSheet; //Read the first cell string test = excelSheet.Cells[1, 1].Value.ToString(); wb.Close(); 

这个例子使用了“Microsoft Excel 15.0 Object Library”,但可能与早期版本的Interop和其他库兼容。

  //THIS IS WORKING CODE Microsoft.Office.Interop.Excel.Range Range_Number,r2; Range_Number = wsheet.UsedRange.Find("smth"); string f_number=""; r2 = wsheet.Cells; int n_c = Range_Number.Column; int n_r = Range_Number.Row; var number = ((Range)r2[n_r + 1, n_c]).Value; f_number = (string)number; 

最好使用.Value2()而不是.Value()。 这是更快,并在单元格中给出确切的价值。 对于某些types的数据,使用.Value()时可以观察到截断。

请尝试这个,可能是这个帮助你,这对我是有用的

 string sValue = (range.Cells[_row, _column] as Microsoft.Office.Interop.Excel.Range).Value2.ToString(); //_row,_column your column & row number //eg: string sValue = (sheet.Cells[i + 9, 12] as Microsoft.Office.Interop.Excel.Range).Value2.ToString(); //sValue has your value