2012-02-14 4 views
4

Je dois lire de grandes feuilles Excel en utilisant Java. La feuille Excel peut être .xls ou .xlsx. La feuille peut avoir des milliers de lignes. Je dois lire toutes les lignes et insérer cette ligne dans la base de données.Quelle est la meilleure API pour lire de gros fichiers Excel en utilisant Java?

Donc, fondamentalement lire à partir d'Excel et écrire dans la base de données. Les API que je considère sont POI et JExcel API (après avoir googlé et lu d'autres articles connexes dans SO). Mais je ne suis toujours pas sûr de la façon la plus appropriée de lire des feuilles Excel très volumineuses.

Je ne veux plus avoir de problèmes de mémoire plus tard.

Edit 1:

En outre, de ce que j'ai cherché jusqu'à présent, il semble que JExcel ne supporte pas les formats .xlsx.

Veuillez nous suggérer.

+0

Jetez un coup d'œil à celui-ci: https://github.com/davidpelfree/sjxlsx –

+0

Notez que toutes les classes du package XSSF et HSSF implémentent généralement des interfaces communes (par exemple WORKBOOK), etc. Si vous ne savez pas ce qui fonctionne le mieux, assurez-vous simplement que votre logique métier est écrite par rapport aux classes API génériques, puis disposez de deux implémentations pour le constructeur du classeur HSSF et pour le constructeur XSSF. – 99Sono

Répondre

3

Nous lisons des fichiers Excel de cette taille en utilisant Apache POI sans problèmes.

+1

Merci pour le commentaire. N'y aura-t-il pas de problèmes de performance à lire Excel, disons 50 000 lignes? – ashishjmeshram

+0

Regardez [ici] (http://stackoverflow.com/questions/4897766/processing-large-xlsx-file-in-java) – jpstrube

0

Essayez jExcel

Voir FAQ here.

Je le préfère sur Apache POI en raison de ses performances et de son utilisation.

La lecture .xlsx est une limitation de la bibliothèque jExcel.

+0

Merci pour la réponse. Nous lirons les fichiers .xlsx. Donc JExcel semble être hors de question alors :( – ashishjmeshram

3

Si vous souhaitez uniquement lire les fichiers, les performances ne devraient poser aucun problème avec Apache POI car il existe des API de lecture en continu (pensez à SAX ou à DOM).
Voir http://poi.apache.org/spreadsheet/index.html

L'écriture de fichiers Excel avec POI serait un scénario différent. Mais au moins pour les fichiers .xlsx, il existe une extension en version bêta pour permettre des opérations d'écriture plus efficaces avec Apache POI (SXSSF).

Questions connexes