IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Données Excel vers Base de données


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 14
    Par défaut Données Excel vers Base de données
    Bonjour à tous,

    Voila, j'ai un projet où je dois extraire des données de fichiers Excel pour ensuite les insérer dans une base de données. Le truc, c'est que c'est des méga fichiers Excel (~40000 lignes, 40 colonnes).

    J'ai essayé plusieurs trucs comme récupérer ligne par ligne avec l'objet COM et une boucle et ensuite les insérer dans la BDD. Ca fonctionne mais bon, ça met dans les 30 minutes :S J'ai tenté également de le faire en PHP (aussi avec l'objet COM) bon, ça fonctionne aussi, c'est un peu plus rapide mais ça reste super long. Et, j'ai l'impression que l'objet COM fait des trucs zarbis (par exemple il laisse les processus Excel lancés sur le serveur alors que je le quitte bien dans mon programme).

    J'ai essayé également de récupérer toutes les données d'un coup comme ça :

    Tableau = xlApp.Sheets("Feuil1").Range("A20:AP36761").Value

    Mais dans ce cas là, VB plante... :S Par contre, quand j'essaie cette solution sur une centaine de lignes, c'est quasiment instantané.

    Mon patron veut que ce soit beaucoup plus rapide. Il m'affirme que c'est possible car quand il fait un copier-coller des données de Excel vers Access ça prends à peine 30 secondes.

    Si vous aviez des conseils à me donner, ça serait super cool, peu importe la technologie que je dois utiliser et la BDD... (Mais bon, ce qui est le plus long c'est de récupérer les données c'est pas de mettre les données dans la BDD mais de les récupérer du fichier Excel)

    J'espère avoir été assez clair, merci d'avance.

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    sql serveur doit avoir un systeme d'import ...
    sinon tu peux ptete tenter en manipulant excel via com d'ouvrir le fichier, de l'enregistrer dans un format plus lisible (csv ou autre s'il y a plus simple)
    ensuite tu lit avec une classe genre streamreader (y a ptete plus rapide là aussi, j'ai pas encore testé la lecture de fichier)
    csv le caractère ; est utilisé pour séparer
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par défaut
    J'ai encapsulé les objets COM d'Excel pour faire un Reader (dans le même esprit qu'un StreamReader). tu peux essayer avec ça et voir ce que ça donne :
    http://skalp.developpez.com/tutoriel...tomationexcel/

    Sinon, il existe aussi un projet sourceforge (Koogra) qui fournit une librairie de lecture de fichier Excel sans utiliser les objets COM. Ca devrait être beaucoup plus rapide, je pense :
    http://sourceforge.net/projects/koogra/

    [EDIT] Ton problème n'est pas résolu ici ? -> Accélerer la lecture d'un fichier excel

  4. #4
    Membre émérite Avatar de zeavan
    Architect
    Inscrit en
    Avril 2003
    Messages
    590
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Autre

    Informations professionnelles :
    Activité : Architect

    Informations forums :
    Inscription : Avril 2003
    Messages : 590
    Par défaut
    Et utiliser l'outil d'import export de sql server.

    en cas de bug (sur sql server 2000 (limite a un nombre de caractere pour les colonnes de 255 je crois))

    tu peux tres bien utiliser excel pour exporter ton fichier excel vers un cvs et ensuite utilise builkinsert.

    maintenant si c'est sur sql server 2005 , pas eu encore de probleme avec l'outil d'import export.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 14
    Par défaut
    Merci pour vos réponses =)

    Vous connaitriez pas une méthode pour automatiser l'exportation en .CSV ?

  6. #6
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par défaut
    Essaye de faire un SaveAs() de ton fichier en le renommant en .csv et en donnant comme valeur xlCSV au paramètre FileFormat de la méthode SaveAs().

Discussions similaires

  1. [MySQL] importer des fichiers word et excel vers base de donnée mysql
    Par malombe dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 23/07/2009, 19h20
  2. Réponses: 4
    Dernier message: 09/06/2009, 14h59
  3. Excel vers Base de données
    Par Msysteme dans le forum Bases de données
    Réponses: 7
    Dernier message: 11/12/2008, 14h41
  4. base de données excel vers publisher
    Par noemiem dans le forum Microsoft Office
    Réponses: 1
    Dernier message: 01/08/2008, 13h52
  5. Extraire une Base de donnée Excel vers Mysql ??
    Par Arvulis dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 09/01/2006, 22h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo