IMPORTER UNE FEUILLE EXCEL DANS UNE DATATABLE

dim3311 Messages postés 13 Date d'inscription dimanche 16 septembre 2001 Statut Membre Dernière intervention 12 juillet 2007 - 12 juil. 2007 à 09:38
mlouiza Messages postés 9 Date d'inscription dimanche 28 novembre 2010 Statut Membre Dernière intervention 14 février 2011 - 31 janv. 2011 à 15:58
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/43422-importer-une-feuille-excel-dans-une-datatable

mlouiza Messages postés 9 Date d'inscription dimanche 28 novembre 2010 Statut Membre Dernière intervention 14 février 2011
31 janv. 2011 à 15:58
svp est ce que je peux avoir les using et les references utilisés car j'ai l'erreur suivante:
Error 1 The type or namespace name 'OleDbConnection' could not be found (are you missing a using directive or an assembly reference?)
damien123456789 Messages postés 4 Date d'inscription mardi 5 mai 2009 Statut Membre Dernière intervention 26 mai 2009
5 mai 2009 à 13:56
Rebonjour,
Trouvé sur internet. Il semble qu'en modifiant la chaine de connexion avec
..... Extended Properties=" + (char)34 + "Excel 8.0;HDR=Yes;IMEX=1" + (char)34 + ";"

ça marche. C'est le IMEX=1 qui importe(le HDR c'est s'il y a une ligne d'entete)

Pour plus d'infos, voir http://support.microsoft.com/kb/194124/fr
Merci
A+
damien123456789 Messages postés 4 Date d'inscription mardi 5 mai 2009 Statut Membre Dernière intervention 26 mai 2009
5 mai 2009 à 12:50
Bonjour,
J'utilisais un code maison (un peu semblable à celui-ci) pour recuperer une feuille excel dans une datatable, mais certaines cellules étaient vides dans ma datatable. J'ai essayé avec ta methode mais le resultat est le meme.
Est-ce que vous connaitriez des raisons au niveau des cellules excel qui empecheraient la recup de cellule ?
La plupart des cellulues manquantes sont des nombres, mais pas toutes. Si je les remplace par une chaine, ca fonctionne.
Merci d'avance si vous avez des suggestions.
Damien (c# VS2008, excel 2003)
cs_MoKaLux Messages postés 39 Date d'inscription vendredi 5 octobre 2007 Statut Membre Dernière intervention 27 mars 2009 1
3 févr. 2009 à 11:59
bonjour,
pour ta question JulienBornet d'exporter de csharp vers excel, la meilleure soluce que j'ai trouvé est de faire un copy dans le clipboard et ensuite de le coller dans excel.
julienbornet Messages postés 99 Date d'inscription jeudi 9 février 2006 Statut Membre Dernière intervention 2 février 2009
2 févr. 2009 à 10:56
Bonjour,

Je sais que ton post date un peu mais quand est il tu code que tu devais ajouter sur l'export de données dans un fichier excel, parce que çà me rendrai bien service d'avoir un exemple

D'avance merci ;-)
cs_MoKaLux Messages postés 39 Date d'inscription vendredi 5 octobre 2007 Statut Membre Dernière intervention 27 mars 2009 1
18 janv. 2009 à 02:04
Merci pour cette autre façon de faire, cela fonctionne bien. Bon code. Pour les try catch on le fait dans l'autre partie du prog...

Petite question au passage, peut-on faire des modifs sur les colonnes avant de les mettre dans le dataset.
"//On parcourt les lignes du datareader qu'on ajoute à la datatable"
Par exemple si une cellule de la colonne X contient "TOTO" alors la cellule de la colonne Y sera multiplié par 2.

Merci en tout cas...
:-)
koudizz Messages postés 1 Date d'inscription mardi 29 juillet 2008 Statut Membre Dernière intervention 26 novembre 2008
26 nov. 2008 à 12:18
Bonjour,
J'ai fenfait réaliser le mème programme suite a une demande de mon chef de projet,mais il me reste un problème,mon fichier programme me charge des celluls vide malgré q'il sont pas vide dans mon fichier Excel.
Merci de me répondre dans les brefs délais pasque j'auré a livré se travaille aujourd'hui.
fastspin Messages postés 5 Date d'inscription mardi 8 février 2005 Statut Membre Dernière intervention 27 mars 2009
16 oct. 2008 à 13:45
Never mind.. J'ai trouvé la solution à ma question. C'est:
dataGridView1.DataSource = buffer;

Buffer étant déclaré dataTable et ensuite la valeur retourné par excelIO.
Attention ne pas faire un binding avec dataGridView. Laisser le biding à "none". C'était en fait mon problème de départ.
Merci à tout ceux qui offre leur service sur ce fantastique site.
Jean-Marc
fastspin Messages postés 5 Date d'inscription mardi 8 février 2005 Statut Membre Dernière intervention 27 mars 2009
15 oct. 2008 à 12:03
Merci pour le code, je le compile OK avec mon form.
Je suis débutant dans le traitement de data.
Je ne comprend pas comment utiliser le retour de return tableXls.
J'essai de binder les data dans un dataGridview. Le Grid prend le nombre de lignes et colonnes de mon Excel sheet mais est vide. Comment puis-je récuperer les donnée et les retrouver dans mon grid?
ixor59 Messages postés 1 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 23 juin 2008
23 juin 2008 à 10:23
Bonjour à tous.

Tout d'abord merci pour ce code, il m'a bien aidé ;-)

Je reviens à la charge concernant le chemin inverse, c'est-à-dire écrire le contenu d'une DataTable dans une feuille d'un document Excell.
Quelqu'un aurait-il un lien où trouver comment faire ?

Merci ^^
cs_rodcobalt22 Messages postés 193 Date d'inscription dimanche 10 février 2002 Statut Membre Dernière intervention 16 février 2016
12 juin 2008 à 09:48
Salut BloodyAngel90,

Il est en effet possible de faire ça mais en bricolant un peu.
En effet, tu peux de la même manière exécuter des updates ou inserts dans la feuille excel.
A savoir tout de même que la structure doit être vachement proche d'une table ^^

Rod^^
bloodyangel90 Messages postés 7 Date d'inscription vendredi 29 février 2008 Statut Membre Dernière intervention 11 juin 2008
11 juin 2008 à 16:24
Bonjours all,

code intéraissent , mais y a t-il moyen de faire le chemin inverse . de passer d'une datatable a une feuille excel en récupérent tous
cs_solos Messages postés 5 Date d'inscription jeudi 22 juin 2006 Statut Membre Dernière intervention 30 décembre 2010
20 mai 2008 à 10:15
Code interessant. Je l'ai utilisé dans mon prog.
Y a t-il un moyen de recuperer aussi les formules et non les valeurs des cellules??
Merci pour votre reponses
kowalska Messages postés 33 Date d'inscription samedi 15 octobre 2005 Statut Membre Dernière intervention 4 janvier 2012
28 févr. 2008 à 15:39
Tres bien mais detruie mon fichier xls. Peut plus l'ouvrir dans office apres!!!!!
ulysse1976 Messages postés 8 Date d'inscription lundi 14 février 2005 Statut Membre Dernière intervention 7 mars 2015
12 nov. 2007 à 17:05
salut
merci pour ce code.
Il m'a bien servit, donc il est normal que je le note ;)
cs_rodcobalt22 Messages postés 193 Date d'inscription dimanche 10 février 2002 Statut Membre Dernière intervention 16 février 2016
30 août 2007 à 15:16
Bonjour,
Merci pour ce code ( en faite j'en ai posté un similaire et j'ai vue le tien trop tard :p).
J'aimerai savoir s'il est possible (à mon avis non) de récupérer la couleur de fond d'une cellule (ne serait ce le code hexa de la couleur ou même une série de byte)
Te remerciant d'avance de toute piste
MatthewsNET Messages postés 2 Date d'inscription mercredi 17 mai 2006 Statut Membre Dernière intervention 12 juillet 2007
12 juil. 2007 à 18:56
Merci Dev,

Tu peux traiter le type de l'élément en utilisant le nom de colonne DataType comme je l'ai fais pour obtenir le nom de la colonne en utilisant ColumnName. Aprés lorsque tu créé une DataColumn, tu as une surcharge pour spécifier le type de la colonne que tu ajoutes a ta DataTable

M@th
devvassili Messages postés 5 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 12 juillet 2007
12 juil. 2007 à 18:15
Merci pour ce code, il est intéressant.
En revanche est-il possible de traiter le type des éléments ? Exemple les dates, les entiers etc.

Bon coding.
dim3311 Messages postés 13 Date d'inscription dimanche 16 septembre 2001 Statut Membre Dernière intervention 12 juillet 2007
12 juil. 2007 à 10:25
merci de ta réponse

entre réduction de performances et des objets qui restent ouverts en attente que le gc veuille bien en faire qch

n'oublie pas que c'est du com derrière le ado en oldb, donc ton pool de connexions est pris, ton fichier est locké

les try catch finally dans ce genre de code de niveau "initié" n'est point un luxe mais une obligation

bonne continuation
Dimitri
MatthewsNET Messages postés 2 Date d'inscription mercredi 17 mai 2006 Statut Membre Dernière intervention 12 juillet 2007
12 juil. 2007 à 10:19
Bonjour Dim,

Tu as parfaitement raison Dim mais ce code n'est pas voué à rester tel quel. Donc, effectivement rajouter des try catch ne serait pas de trop. Ceci dit, attention à l'utilisation abusive des try catch car elles réduisent significativement les performances d'une application.
dim3311 Messages postés 13 Date d'inscription dimanche 16 septembre 2001 Statut Membre Dernière intervention 12 juillet 2007
12 juil. 2007 à 09:38
aucun try catch dans le code ? dangereux, une fois la connexion est ouverte, de sortir en exception et laissé tous les objets en l'état