Je cherche à extraire par programme des données d'une feuille de calcul Excel et à les insérer dans une table de base de données.
Comment puis-je déterminer le nombre de colonnes et de lignes dans une feuille de calcul ou autrement itérer les lignes?
J'ai
Excel._Worksheet worksheet = (Excel._Worksheet)workbook.ActiveSheet;
J'ai essayé worksheet.Range.Rows.Count
qui jette
La propriété indexée 'Microsoft.Office.Interop.Excel._Worksheet.Range' a des arguments non facultatifs qui doivent être fournis
Ce qui doit être fait?
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);
}
}
Cela compile et fonctionne très bien pour moi! Je l'utilise pour extraire des lignes avec des champs manquants dans un journal d'erreurs.
Je suppose que vous recherchez en fait la dernière ligne utilisée. Dans ce cas, vous devez l'écrire comme ceci:
Range UsedRange = worksheet.UsedRange;
int lastUsedRow = UsedRange.Row + UsedRange.Rows.Count - 1;
Jetez un œil à la propriété sedRange dans Excel.