12
votes

BiffException en lisant une feuille Excel

J'ai un code à lire à partir d'une feuille Excel qui est au format ancien (97-2003). J'ai apporté des modifications aux données et avons terminé sur une feuille Excel de format 2007. Lorsque j'ai utilisé cette feuille XLSX au lieu de la feuille XLS, je reçois cela:

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 readexcel.ReadExcel.readContent(ReadExcel.java:50)
    at readexcel.ReadExcel.init(ReadExcel.java:25)
    at readexcel.ReadExcel.main(ReadExcel.java:183)


1 commentaires

Il semble que JXL utilise toujours l'ancien lecteur XLS pour essayer de lire votre nouveau fichier XLSX - pourquoi pas simplement "Enregistrer comme" de MS Excel pour l'enregistrer dans le plus ancien format 97-2003


4 Réponses :


17
votes

Le format XLS ( = Excel 2007) est composé de fichiers XML dans un conteneur zip.

L'API Java Excel traite uniquement le premier format afin qu'il jette une exception lorsqu'il ne rencontre pas un conteneur OLE.

Vous devrez limiter votre entrée dans des fichiers XLS uniquement ou trouver un autre outil qui gère les deux formats.


2 commentaires

Bien ... c'était assez perspicace ... Pouvez-vous me donner une idée de toute API qui gère à la fois le format


Apache POI gère les deux types de fichiers en Java: Poi.apache.org/spreadsheet/index.htmlleds a>



4
votes

"Enregistrer sous" Votre classeur "Excel 97-2003 workbook" (option est livré dans Microsoft Excel 2007) Il enregistre votre fichier dans le conteneur OLE.


0 commentaires

3
votes

J'ai juste eu le même problème. Le projet était maven basé sur la directive suivante consistait à filtrer le fichier XLS.

<resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
</resources>


1 commentaires

J'ai eu le même problème. J'utilise Maven pour démarrer Soapui avec quelques classeurs Excel. Et lorsque vous filtrez ces fichiers Excel avec Maven, cela les modifie en interne les rendant inutilisables. Donc, la solution ne doit pas les filtrer.



0
votes

J'étais confronté au même problème dans Eclipse / Selenium et essayé de "enregistrer comme" 97-2000 (.xls) et il a résolu mon problème.


0 commentaires