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.
Partager