How to read single Excel cell value
I have excel file with sheet1 that has a value I need to read on row 2 and column 10. Here is my code.
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];
After getting cell object which is Excel.Range, I do not know how to read the content of that cell. I tried converting it into array and looping over it and I tried converting to string array etc. I am sure it is very simple. Is there a direct way to get just one cell value that is string?
Solution 1:
You need to cast it to a string (not an array of string) since it's a single value.
var cellValue = (string)(excelWorksheet.Cells[10, 2] as Excel.Range).Value;
Solution 2:
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();
This example used the 'Microsoft Excel 15.0 Object Library' but may be compatible with earlier versions of Interop and other libraries.
Solution 3:
//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;