visual studio office microsoft example c# excel excel-2007 excel-interop

c# - studio - microsoft.office.interop.excel.dll version 15 download



C#- ¿Cómo itero todas las filas en Excel._Worksheet? (3)

Estoy buscando extraer datos de una hoja de cálculo de Excel mediante programación e insertarlos en una tabla de base de datos.

¿Cómo puedo determinar el número de columnas y filas en una hoja de trabajo o de otra manera iterar las filas?

yo tengo

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

He intentado worksheet.Range.Rows.Count

que arroja

La propiedad indexada ''Microsoft.Office.Interop.Excel._Worksheet.Range'' tiene argumentos no opcionales que deben proporcionarse

¿Lo que hay que hacer?


Echa un vistazo a la propiedad UsedRange en Excel.


Supongo que en realidad estás buscando la última fila usada. En ese caso necesitas escribirlo así:

Range UsedRange = worksheet.UsedRange; int lastUsedRow = UsedRange.Row + UsedRange.Rows.Count - 1;


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] = row.Cells[1, i + 1].Value2.ToString(); } }

¡Esto compila y funciona simplemente genial para mí! Lo estoy usando para extraer filas con campos faltantes en un registro de errores.