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

cs_Caro2005 15 Messages postés mardi 14 juin 2005Date d'inscription 23 septembre 2008 Dernière intervention - 14 juin 2005 à 23:07 - Dernière réponse : mlouiza 9 Messages postés dimanche 28 novembre 2010Date d'inscription 14 février 2011 Dernière intervention
- 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
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 16 juin 2005 à 00:12
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#

Merci cs_coq 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 123 internautes ce mois-ci

Commenter la réponse de cs_coq
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 15 juin 2005 à 08:02
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
cs_Caro2005 15 Messages postés mardi 14 juin 2005Date d'inscription 23 septembre 2008 Dernière intervention - 15 juin 2005 à 09:44
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
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 15 juin 2005 à 19:57
0
Merci
Ah et donc comment tu le lis ton fichier xls ?

Cocoricoooooooo !!!!
coq
MVP Visual C#
Commenter la réponse de cs_coq
cs_Caro2005 15 Messages postés mardi 14 juin 2005Date d'inscription 23 septembre 2008 Dernière intervention - 15 juin 2005 à 21:07
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
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 15 juin 2005 à 21:46
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
cs_Caro2005 15 Messages postés mardi 14 juin 2005Date d'inscription 23 septembre 2008 Dernière intervention - 15 juin 2005 à 22:18
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
mlouiza 9 Messages postés dimanche 28 novembre 2010Date d'inscription 14 février 2011 Dernière intervention - 31 janv. 2011 à 16:20
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.