user2252365
user2252365

Reputation:

How to read cell values from existing excel file

I want to read the each cell value in excel file, But i am not able to get the cell values even after trying different examples in NET. I am not getting result with the following code, can any one get back on this. I am using .net framework 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();
}

Upvotes: 2

Views: 59655

Answers (3)

remon78eg
remon78eg

Reputation: 59

C# code
Tested OK

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


Full Code

        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);

Upvotes: 0

user3506226
user3506226

Reputation: 19

The correct answer would be to use:

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

Upvotes: 1

Siddharth Rout
Siddharth Rout

Reputation: 149315

Till now i am trying to take cell values directly to variables, now i will try to take cell values to an array using Range. Thanks!!!! – Teja Varma 13 mins ago

No. I didn't even mean that :) As I mentioned in the comment that you can store the entire range in an array. That doesn't mean that you need to loop though each cell to store it in an array. You can directly assign the values of the range to the array. See this example.

xlRng = xlWorkSheet.get_Range("A1", "A20");

Object arr = xlRng.Value;

foreach (object s in (Array)arr)
{
    MessageBox.Show(s.ToString());
}

Upvotes: 7

Related Questions