Re : importer des données a partir d'un ficher excel

Office

importer des données a partir d'un ficher excel


tectec25 07-03-2006, 11:42

Bonjour!

Je développe actuellement une application web en asp.net et C# et je dois importer des données à partir d'un fichier excel et les stocker dans une base sql , j'utilise visual studio 2005.

Comme j'ai un peu de mal! je voulais savoir si quelqu'un a deja eu a traiter ce pb! et si il pouvait m'indique la démarche à suivre.

Merci Smile <img src=" src="/emoticons/emotion-1.gif">

Re : importer des données a partir d'un ficher excel


okavango 07-03-2006, 15:22
Salut !
Dans la solution que je te propose, je te mets sur la voie.
Pour exporter des données depuis un fichier excel vers une table de ta base de données via VS 2005 (ASP.Net (c#)) tu peux faire comme suit :

NB . : Tu dois disposer d'un fichier XLS de ton choix sur ton serveur, comme ici, nommé "Data.xls" dans mon exemple.
N'oublie pas également de rajouter les importations d'espaces de nom adéquats : ici j' utilise
using System.Data.OleDb;

Puis dans le Page_Load() tu mets :

        OleDbDataAdapter oAd = new OleDbDataAdapter();
        OleDbCommand oCmd = new OleDbCommand();
        OleDbConnection oCnx = new OleDbConnection();
         
        string sCnxString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("tonFichier.xls") + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\"";

        oCnx.ConnectionString = sCnxString;

        oCmd.CommandText = "SELECT * FROM [Feuil1$]";
        oCmd.Connection = oCnx;

        oAd.SelectCommand = oCmd;

       // A partir d'ici, comme je ne sais pas comment se présente l'architecture
       // et l'aspect de ta base, c'est à toi de te connecter à ta base et de remplir
       // la bonne table
       // avec la bonne méthode Fill() ...

        oAd.Fill(new DataTable("myTable"));

            /* Affichage du contenu dans une Gridview */
         
            // DataSet oDs = new DataSet("ExcelDataset");
            // oAd.Fill(oDs);
            // GridView1.DataSource = oDs;
            // GridView1.DataBind();

Voilà à mon avis tu devrais t'en sortir, sauf erreur de ma part !
A+.

Okavango.


PS.: Je te recommande de ne pas utiliser les objets Automation destinés à manipuler Excel via des objets (Microsoft.Office.Excel ... [cf . Ajouter Référence>onglet COM ...] ) car ils sont certes riches mais difficiles à manipuler. En outre, le namespace System.Data.OleDb te fournit déjà ce qu'il te faut.

Re : importer des données a partir d'un ficher excel


tectec25 07-03-2006, 15:33

Salut!

Merci beaucoup! Je n'ai pas encore essayé mais c'est exactement ce que je cherchais..

encore une fois merci

A plus

Re : importer des données a partir d'un ficher excel


okavango 07-03-2006, 16:24
De rien !
Okavango.
;-)

Re : importer des données a partir d'un ficher excel


tectec25 07-17-2006, 16:45

Salut!

C'est encore moi! en fait j'ai un ptit problème a l'exécution que ce soit pr remplir le dataset ou la base! J'obtiens cette erreur:

Je sais pas si ça te dit quelque chose! Je sais pas si je dois faire un truc avant de remplir le data set...

 

Erreur du serveur dans l'application '/PilotePlateforme'.

La table externe n'est pas dans le format attendu.

Description : Une exception non gérée s'est produite au moment de l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.

Détails de l'exception: System.Data.OleDb.OleDbException: La table externe n'est pas dans le format attendu.

Erreur source:

Ligne 33 :         // avec la bonne méthode Fill() ...
Ligne 34 :         //oAd.Fill();
Ligne 35 :         oAd.Fill(new DataTable("Table1"));
Ligne 36 : 
Ligne 37 :         /* Affichage du contenu dans une Gridview */


Fichier source : c:\PilotePlateforme\ConsulterInformations.aspx.cs    Ligne : 35

Trace de la pile:



Informations sur la version : Version Microsoft .NET Framework :2.0.50727.42; Version ASP.NET :2.0.50727.

 

Merci d'avance!

Wink [;)]

 

Re : importer des données a partir d'un ficher excel


okavango 07-17-2006, 17:35
Salut !

Si tu as ce message d'erreur c'est parce que surement le premier enregistrement (du fichier texte délimité) contient des données dans un format qui par Microsoft Excel (de même que ACCESS) ne peut pas être reconnu.
Par exemple l'enregistrement contient un séparateur de champ incorrect comme quand tu tapes "," à la place de ";"

titi;toto,tata
tutu,tyty,toutou


étant donné que ce sont deux touches assez proches sur le clavier. Mais ça n'est qu'un exemple et là n'est pas le problème.

Si l'opération échoue dès la première importation à mon avis ça veut dire que le contenu à importer est défectueux ! Il se peut aussi que les types de données utilisés par Excel ne concordent pas du tout avec ceux de la table de la base donc ERROR !!!!

Essaie d'afficher le contenu de ton importation avant de l'inscrire dans ta table. Et regarde si le contenu contient des caractères non-valides et non-pris en charge par Excel en tant que délimiteur de champs !

Okavango.

Re : importer des données a partir d'un ficher excel


Anonymous 07-18-2006, 11:58

Salut!

Vraiment merci pour toutes les explications!

Pour pouvoir afficher les données dans un gridview faudra ke je passe quand meme par un dataset non? Pcq j'obtiens la meme erreur en voulant remplir le dataset!

Merci encore!

Re : importer des données a partir d'un ficher excel


tectec25 07-18-2006, 15:50

Salut!

Vraiment merci pour toutes les explications!

Pour pouvoir afficher les données dans un gridview faudra ke je passe quand meme par un dataset non? Pcq j'obtiens la meme erreur en voulant remplir le dataset!

Merci encore!


Re : importer des données a partir d'un ficher excel


tectec25 07-18-2006, 15:56
J'ai reposté le message pcq je ne m'etais pas identifié! Smile [:)]

Re : importer des données a partir d'un ficher excel


okavango 07-18-2006, 18:51
Salut !
Oui il faudra que tu passes par un dataset, et dans le code que je t'avais filé j'avais illustré un exemple avec un dataset que j'ai mis en commentaire il me semble ! Après création et remplissage de la dataset, tu le bind avec la gridview !
Si l'erreur, que tu as eu, persiste alors essaie de faire en sorte (du côté de ta page)  de formater ta table via ton code si possible pour faire rentrer les données correctement ! Et idem du côté excel (je ne suis pas sûr qu'il existe un moyen de formater les données lors d'une importation du côté excel via le code !
Bon courage !
Okavango.

 Page 1 sur 3 [25 au total] 1 2 3 »

Sponsorisé par Community Server


Conditions d’utilisation et Copyright
Respect de la vie privée