|
|
Office
Démarré par tectec25 à 07-03-2006 11:42. Le sujet a 24 réponse(s).
 
 
|
|
Sort Posts:
|
|
|
|
07-03-2006, 11:42
|
tectec25
Rejoint : 07-03-2006
Messages : 24
|
importer des données a partir d'un ficher excel
|
|
|
|
|
|
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 " src="/emoticons/emotion-1.gif">
|
|
|
|
Adresse IP : Connecté
|
Rapport
|
|
|
|
07-03-2006, 15:22
|
okavango
Rejoint : 06-23-2006
Messages : 409
|
Re : importer des données a partir d'un ficher excel
|
|
|
|
|
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
Rejoint : 07-03-2006
Messages : 24
|
Re : importer des données a partir d'un ficher excel
|
|
|
|
|
|
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
Rejoint : 06-23-2006
Messages : 409
|
Re : importer des données a partir d'un ficher excel
|
|
|
|
|
|
|
|
07-17-2006, 16:45
|
tectec25
Rejoint : 07-03-2006
Messages : 24
|
Re : importer des données a partir d'un ficher excel
|
|
|
|
|
|
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 [;)]](/emoticons/emotion-5.gif)
|
|
|
|
Adresse IP : Connecté
|
Rapport
|
|
|
|
07-17-2006, 17:35
|
okavango
Rejoint : 06-23-2006
Messages : 409
|
Re : importer des données a partir d'un ficher excel
|
|
|
|
|
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
|
Re : importer des données a partir d'un ficher excel
|
|
|
|
|
|
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
Rejoint : 07-03-2006
Messages : 24
|
Re : importer des données a partir d'un ficher excel
|
|
|
|
|
|
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
Rejoint : 07-03-2006
Messages : 24
|
Re : importer des données a partir d'un ficher excel
|
|
|
|
|
J'ai reposté le message pcq je ne m'etais pas identifié!
|
|
|
|
Adresse IP : Connecté
|
Rapport
|
|
|
|
07-18-2006, 18:51
|
okavango
Rejoint : 06-23-2006
Messages : 409
|
Re : importer des données a partir d'un ficher excel
|
|
|
|
|
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
|
|
|
|