JExcel API, problème de performance, besoin d'aide urgent
HoLyJava
Messages postés4Date d'inscriptionlundi 20 juin 2011StatutMembreDernière intervention21 juin 2011
-
20 juin 2011 à 05:46
HoLyJava
Messages postés4Date d'inscriptionlundi 20 juin 2011StatutMembreDernière intervention21 juin 2011
-
21 juin 2011 à 03:27
Bonjour à tous,
Nouveau sur le forum, je sollicite votre aide comme un dernier espoir pour m'aider dans un problème insoluble.
J'utilise l'API Jexcel, dans le but unique de lire un fichier excel.
Le problème que je rencontre est la longueur de chargement d'un gros volume de données dans une matrice.
Mon fichier excel final devrait avoir un maximum de 800.000 colonnes pour 20 colonnes.
Pour l'instant, mes tests se font sur un fichier de 30.000 lignes et 10 colonnes, et le fichier contient uniquement un entier dans chaque case.
Pourtant, le chargement prend entre 15 et 20 minutes à se faire !!!
Mon code n'a rien de particulier, mais à titre indicatif, c'est le suivant :
HoLyJava
Messages postés4Date d'inscriptionlundi 20 juin 2011StatutMembreDernière intervention21 juin 2011 20 juin 2011 à 14:44
Bonjour,
Merci de ta réponse.
Pour l'instant, au-delà de traiter ce problème de nombre de ligne (qui n'en ai pas un, car je peux double les colonnes, limitées à 16.000, pour simuler la présence de 800.000 lignes), je m'intéresse au temps d'exécution monstrueux, comme expliqué précédemment, du stockage dans une matrice de seulement 30.000 lignes et 10 colonnes.
C'est cette performance désastreuse que d'une part je ne comprend pas, et d'autre part je n'arrive pas à changer..
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020371 20 juin 2011 à 15:56
Si tu utilisais un fichier texte, tu irais surement plus vite. Si ton code n'est pas trop long, écris le et je regarderai s'il n'y a pas d'optimisation possible.
cs_GodConan
Messages postés2113Date d'inscriptionsamedi 8 novembre 2003StatutContributeurDernière intervention 6 octobre 201212 20 juin 2011 à 18:45
salut,
La limite en lignes de excel est de 64k ;o) pour l'avoir explosé plus d une fois ;o) .... Cependant je n ai pas testé les version superieur à 2003... ;o)
Sinon, en passant par les fonction excel externe c est forcement plus lent ;o) ... je n ai jamais pue tester les limites de cette API.
Ceci un rapide parcours ;o) m a permis d y localiser la class CSV qui te permet de creer un xls à partir d un csv ;o)
;o) donc au lieu d apeller les methodes laborieuses d'insertion de cellule : tu généres un fichier CSV, pour 16k d'enregistrements cela tiendra surement dans la seconde ;o) vu les disques et procésseur actuel ;o) , ensuite
tu creer à partir de ce fichier ton fichier excel ;o) (et tu peux effacer le .csv si il le faut) , si l api est bien faite cela devrait etre nettement plus rapide ;o)