C# Importation feuille Excel vers un DataTable [Résolu]

Messages postés
15
Date d'inscription
mardi 14 juin 2005
Dernière intervention
23 septembre 2008
- - Dernière réponse : mlouiza
Messages postés
9
Date d'inscription
dimanche 28 novembre 2010
Dernière intervention
14 février 2011
- 31 janv. 2011 à 16:20
Bonjour,
Je souhaite importer des données situées dans une feuille Excel vers un DataTable. Pas de pb pour l'accès à ma feuille Excel, mais là où ça se complique c'est que je ne veux importer uniquement les données situées dans la colonne "Numero" qui peut être située n'importe où dans ma feuille.
Quelqu'un peut-il m'aider ? Merci.
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
6366
Date d'inscription
samedi 1 juin 2002
Dernière intervention
2 août 2014
3
Merci
La requête "SELECT Numéro FROM [Feuil1$] WHERE Numéro<>NULL" devrait suffir
([Feuil1$] est la notation pour la feuille "Feuil1".)

Petit exemple vite fait :

OleDbConnection dbConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\test.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1"");
OleDbCommand dbCommand = new OleDbCommand("SELECT Numéro FROM [Feuil1$] WHERE Numéro<>NULL", dbConn);

StringBuilder sbListeNumeros = new StringBuilder();

dbCommand.Connection.Open();
OleDbDataReader dbDR = dbCommand.ExecuteReader();

while ( dbDR.Read() )
{
sbListeNumeros.Append(dbDR["Numéro"]);
sbListeNumeros.Append(";");
}

dbCommand.Connection.Close();

MessageBox.Show(sbListeNumeros.ToString());

Cocoricoooooooo !!!!
coq
MVP Visual C#

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de cs_coq
Messages postés
6366
Date d'inscription
samedi 1 juin 2002
Dernière intervention
2 août 2014
0
Merci
Salut,

Si tu utilises une chaîne de connexion de ce genre : "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"""
"HDR=Yes;" indique que la première ligne de la feuille contient les noms de colonne, ce qui te permettra de repérer la colonne en connaissant son nom au lieu de sa position.

Cocoricoooooooo !!!!
coq
MVP Visual C#
Commenter la réponse de cs_coq
Messages postés
15
Date d'inscription
mardi 14 juin 2005
Dernière intervention
23 septembre 2008
0
Merci
Je n'utilise pas de chaine de connexion de ce genre. Dans mon appli, l'utilisateur sélectionne un fichier XL et le traitement doit s'exécuter sur ce fichier.
Commenter la réponse de cs_Caro2005
Messages postés
6366
Date d'inscription
samedi 1 juin 2002
Dernière intervention
2 août 2014
0
Merci
Ah et donc comment tu le lis ton fichier xls ?

Cocoricoooooooo !!!!
coq
MVP Visual C#
Commenter la réponse de cs_coq
Messages postés
15
Date d'inscription
mardi 14 juin 2005
Dernière intervention
23 septembre 2008
0
Merci
J'utilise la méthode open de Workbooks
ex: ThisApp.Workbooks.Open (fileName,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing)
où fileName correspond au nom de mon fichier XL.
Après j'ai essayé avec la classe Range
mais je n'arrive pas à récupérer uniquement le contenu des cellules dont j'ai besoin (cellules non vides et uniquement de la colonne "Numero").
Commenter la réponse de cs_Caro2005
Messages postés
6366
Date d'inscription
samedi 1 juin 2002
Dernière intervention
2 août 2014
0
Merci
Ah donc oui tu n'attaques pas le fichier comme si c'était une base de données.
Là je n'y connais absolument rien dsl

Cocoricoooooooo !!!!
coq
MVP Visual C#
Commenter la réponse de cs_coq
Messages postés
15
Date d'inscription
mardi 14 juin 2005
Dernière intervention
23 septembre 2008
0
Merci
J'ai réfléchi à ce que tu as écris précédemment. Je n'ai rien contre le fait d'attaquer mon fichier par une connexion oledb mais après comment je fais pour récupérer uniquement les données de la colonne "Numéro" de ma feuille XL ???
Commenter la réponse de cs_Caro2005
Messages postés
9
Date d'inscription
dimanche 28 novembre 2010
Dernière intervention
14 février 2011
0
Merci
svp liste des using et refferences à utiliser
merci
Commenter la réponse de mlouiza

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.