Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C# - How do I iterate all the rows in Excel._Worksheet?

Tags:

I am looking to programmatically pull data from an Excel worksheet and insert it into a database table.

How do I determine the number of columns and rows in a worksheet or otherwise iterate the rows?

I have

Excel._Worksheet worksheet = (Excel._Worksheet)workbook.ActiveSheet; 

I tried worksheet.Range.Rows.Count

which tosses up

Indexed property 'Microsoft.Office.Interop.Excel._Worksheet.Range' has non-optional arguments which must be provided

What needs to be done?

like image 566
P.Brian.Mackey Avatar asked Oct 11 '11 14:10

P.Brian.Mackey


1 Answers

public void IterateRows(Excel.worksheet worksheet) {     //Get the used Range     Excel.Range usedRange = worksheet.UsedRange;      //Iterate the rows in the used range     foreach(Excel.Range row in usedRange.Rows)     {         //Do something with the row.          //Ex. Iterate through the row's data and put in a string array         String[] rowData = new String[row.Columns.Count];         for(int i = 0; i < row.Columns.Count; i++)             rowData[i] =Convert.ToString(row.Cells[1, i + 1].Value2);     } } 

This compiles and runs just great for me! I'm using it to extract rows with missing fields to an error log.

like image 168
nicholeous Avatar answered Oct 10 '22 21:10

nicholeous