Laquelle des 2 API est la plus simple à lire / écrire / modifier des feuilles Excel? Ces API ne prennent-elles pas en charge les extensions CSV?
En utilisant JXL pour file.xls et file.xlsx, j'obtiens une exception comme:
jxl.read.biff.BiffException: Unable to recognize OLE stream
at jxl.read.biff.CompoundFile.<init>(CompoundFile.java:116)
at jxl.read.biff.File.<init>(File.java:127)
at jxl.Workbook.getWorkbook(Workbook.java:268)
at core.ReadXLSheet.contentReading(ReadXLSheet.java:46)
at core.ReadXLSheet.init(ReadXLSheet.java:22)
at core.ReadXLSheet.main(ReadXLSheet.java:72)
À la fois pour les extensions .xls et .xlsx. La version de Java que j'utilise est: JDK1.6
java
excel
apache-poi
jxl
Swagatika
la source
la source
Réponses:
J'ai utilisé à la fois JXL (maintenant "JExcel") et Apache POI . Au début, j'utilisais JXL, mais maintenant j'utilise Apache POI.
Tout d'abord, voici les choses où les deux API ont la même fonctionnalité finale:
Cependant, il existe de nombreuses différences:
De plus, POI contient non seulement l'API principale "usermodel", mais également une API basée sur les événements si vous ne voulez que lire le contenu de la feuille de calcul.
En conclusion, en raison de la meilleure documentation, de plus de fonctionnalités, du développement actif et de la prise en charge du format Excel 2007+, j'utilise Apache POI.
la source
getContents()
méthode sale dans JExcelAPI me fait gagner beaucoup de temps. Avec POI, vous devez vérifier son type de cellule, puis obtenir sa valeur (s'il s'agit d'une cellule numérique, vous devez vérifier si c'est une cellule Date) en fonction de son type, et enfin la convertir en valeur String avec différentes méthodes, c'est tellement gênant. Je ne peux pas imaginer que POI ne propose pas une méthode aussi sale mais pratique que JExcelAPI.J'ai utilisé POI.
Si vous utilisez cela, gardez un œil sur ces formateurs de cellules: créez-en un et utilisez-le plusieurs fois au lieu de créer à chaque fois pour la cellule, c'est une énorme différence de consommation de mémoire ou des données volumineuses.
la source
Je ne suis pas familier avec JXL et mais nous utilisons POI. POI est bien entretenu et peut gérer à la fois le format binaire .xls et le nouveau format xml introduit dans Office 2007.
Les fichiers CSV ne sont pas des fichiers Excel, ce sont des fichiers texte, donc ces bibliothèques ne les lisent pas. Vous devrez analyser vous-même un fichier CSV. Je ne connais aucune bibliothèque de fichiers CSV, mais je n'ai pas regardé non plus.
la source
Pour lire des fichiers CSV "simples" en Java, il existe une bibliothèque appelée OpenCSV, disponible ici: http://opencsv.sourceforge.net/
la source