Comment parcourir les Feuilles de calcul Excel seulement l'extraction de données à partir des colonnes spécifiques
Comment voulez-vous faire une itération sur un classeur excel avec plusieurs feuilles de calcul seulement l'extraction de données de dire colonnes "C", "E" & "F"?
Voici le code que j'ai jusqu'à présent:
public static string ExtractData(string filePath)
{
Excel.Application excelApp = new Excel.Application();
Excel.Workbook workBook = excelApp.Workbooks.Open(filePath);
string data = string.Empty;
int i = 0;
foreach (Excel.Worksheet sheet in workBook.Worksheets)
{
data += "******* Sheet " + i++.ToString() + " ********\n";
//foreach (Excel.Range row in sheet.UsedRange.Rows)
//{
// data += row.Range["C"].Value.ToString();
//}
foreach (Excel.Range row in sheet.UsedRange.Rows)
{
foreach (Excel.Range cell in row.Columns)
{
data += cell.Value + " ";
}
data += "\n";
}
}
excelApp.Quit();
return data;
}
Je vous remercie beaucoup pour votre temps, toute aide est appréciée.
OriginalL'auteur RobHurd | 2013-04-22
Vous devez vous connecter pour publier un commentaire.
De l'édition de votre méthode, voici quelque chose à faire ce que vous cherchez:
J'ai créé un tableau int pour indiquer les colonnes que vous souhaitez lire, puis sur chaque ligne nous venons de parcourir le tableau.
HTH,
Z
OriginalL'auteur Zack Kay
Vous pouvez utiliser quelque chose comme cela pour obtenir la Colonne C par exemple:
nombredelignes contient le nombre de lignes dans la feuille de calcul (je pense qu'il n'est pas ignorer les lignes vides en haut tho, pas sûr). Après que vous sélectionnez une plage de C1 à CN et d'obtenir de la Valeur2 qui contient les valeurs. L'esprit que les valeurs du tableau est en fait un tableau à deux dimensions. Vous pouvez maintenant le faire facilement une boucle for pour obtenir les éléments:
Ce pourrait être optimisée dans le cas où les colonnes sont les unes à côté des autres ou telle, mais le code ci-dessus devrait vous obtenir a commencé.
sheet.UsedRange.Columns[3, Type.Missing].Rows.Count;
Je n'ai pas.Rows
comme une option... justeToString()
Aucune idée pourquoi et comment le résoudre?OriginalL'auteur Mitja Bezenšek