Bienvenue sur Labo-dotnet Identification | Enregistrement | Faq

Office

Démarré par tectec25 à 07-03-2006 11:42. Le sujet a 24 réponse(s).

Print Search
Sort Posts:    
   07-03-2006, 11:42
tectec25 n'est pas en ligne. Dernière activité : 11/08/2006 12:56:24 tectec25

Top 100 Messages
Rejoint : 07-03-2006
Messages : 24
Smile [:)] importer des données a partir d'un ficher excel
Reply Quote

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">


Adresse IP : Connecté   Rapport 
   07-03-2006, 15:22
okavango n'est pas en ligne. Dernière activité : 22/10/2008 16:33:45 okavango


Rejoint : 06-23-2006
Messages : 409
Confused [*-)] Re : importer des données a partir d'un ficher excel
Reply Quote
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.

Adresse IP : Connecté   Rapport 
   07-03-2006, 15:33
tectec25 n'est pas en ligne. Dernière activité : 11/08/2006 12:56:24 tectec25

Top 100 Messages
Rejoint : 07-03-2006
Messages : 24
Big Smile [:D] Re : importer des données a partir d'un ficher excel
Reply Quote

Salut!

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

encore une fois merci

A plus


Adresse IP : Connecté   Rapport 
   07-03-2006, 16:24
okavango n'est pas en ligne. Dernière activité : 22/10/2008 16:33:45 okavango


Rejoint : 06-23-2006
Messages : 409
Wink [;)] Re : importer des données a partir d'un ficher excel
Reply Quote
De rien !
Okavango.
;-)

Adresse IP : Connecté   Rapport 
   07-17-2006, 16:45
tectec25 n'est pas en ligne. Dernière activité : 11/08/2006 12:56:24 tectec25

Top 100 Messages
Rejoint : 07-03-2006
Messages : 24
Smile [:)] Re : importer des données a partir d'un ficher excel
Reply Quote

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 [;)]

 


Adresse IP : Connecté   Rapport 
   07-17-2006, 17:35
okavango n'est pas en ligne. Dernière activité : 22/10/2008 16:33:45 okavango


Rejoint : 06-23-2006
Messages : 409
Smile [:)] Re : importer des données a partir d'un ficher excel
Reply Quote
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.


Adresse IP : Connecté   Rapport 
   07-18-2006, 11:58
Anonymous
Smile [:)] Re : importer des données a partir d'un ficher excel
Reply Quote Edit

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!


Adresse IP : Connecté    
   07-18-2006, 15:50
tectec25 n'est pas en ligne. Dernière activité : 11/08/2006 12:56:24 tectec25

Top 100 Messages
Rejoint : 07-03-2006
Messages : 24
Smile [:)] Re : importer des données a partir d'un ficher excel
Reply Quote

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!



Adresse IP : Connecté   Rapport 
   07-18-2006, 15:56
tectec25 n'est pas en ligne. Dernière activité : 11/08/2006 12:56:24 tectec25

Top 100 Messages
Rejoint : 07-03-2006
Messages : 24
Big Smile [:D] Re : importer des données a partir d'un ficher excel
Reply Quote
J'ai reposté le message pcq je ne m'etais pas identifié! Smile [:)]
Adresse IP : Connecté   Rapport 
   07-18-2006, 18:51
okavango n'est pas en ligne. Dernière activité : 22/10/2008 16:33:45 okavango


Rejoint : 06-23-2006
Messages : 409
Smile [:)] Re : importer des données a partir d'un ficher excel
Reply Quote
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.


Adresse IP : Connecté   Rapport 
  Page 1 sur 3 [25 au total] 1 2 3 »
Labo-dotnet » Programmation .... » Office » importer des données a partir d'un ficher excel

Sponsorisé par Community Server


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