Concernant la différence entre les versions de poi !

la couverture

Lien vers le texte original : Concernant la différence entre les versions de poi ! | Elvin

Récemment, j'ai besoin de faire une fonction d'importation et d'exportation au travail, et il y a quelques problèmes, veuillez l'enregistrer

环境为poi3.+版本到poi4.+的过渡



Question une

Poi lit les problèmes de compatibilité entre Excel2003 et 2007 et les versions ultérieures

Erreur de description:

Au début, tous les fichiers au format .xlsx étaient utilisés pour les opérations d'import, et tout allait bien. Plus tard, lors de la fonction d'exportation, un outil d'exportation a été introduit. Cet outil utilise le fichier au format .xls pour l'opération d'exportation, donc lorsque j'utilise le fichier au format .xlsx pour effectuer l'exportation, une erreur anormale se produit, telle que :

The supplied data appears to be in the Office 2007+ XML. You are calling the part of POI that deals with OLE2 Office Documents. You need to call a different part of POI to process this data (eg XSSF instead of HSSF)

Un problème de version a été signalé car les fichiers Excel dans différents formats doivent utiliser différents objets de traitement (XSSF/HSSF) pour la lecture des fichiers ;

Solution

Utilisez POIFSFileSystem.hasPOIFSHeader(inputstream)la méthode pour juger de la version du fichier Excel, afin que vous puissiez savoir s'il doit être utilisé XSSFWorkbook对象ou utilisé HSSFWorkbook对象pour lire le fichier.



question deux

Différences dans les mises à jour de version

Énoncé du problème :

Au début, le package jar de poi version 3.17 était utilisé, et aucun jugement n'était porté sur la version du fichier excel. Ensuite, je porte un jugement, en utilisant la méthode du jugement :

POIFSFileSystem.hasPOIFSHeader(inputstream)

Cette méthode peut juger correctement si Excel est la version 2003 ou 2007, mais plus tard ma 更换了其中一个jar包version poi-4.1.2, 更新后出现了hasPOIFSHeader方法无法找到的错误la raison en est que la version poi-4.0+ supprime la méthode de jugement hasPOIFSHeader.

Solution

L'utilisation de la méthode poi-ooxmldans le package WorkbookFactory.create(inputStream)pour créer un objet Workbook peut résoudre ce problème ; c'est parce que HSSFWorkbook et XSSFWorkbook implémentent l'interface Workbook, et il jugera la version par lui-même lors de la création d'un Workbook. Le code de création est le suivant :

Workbook wb = WorkbookFactory.create(is);

Il y a aussi un nouveau changement dans le jugement original du type de données de cellule et du code de style Excel après la mise à jour

version poi3.+ version poi4.+ utiliser
Cellule.CELL_TYPE_STRING CellType.STRING Jugement du format des données cellulaires
HSSFCell.CELL_TYPE_NUMERIC CellType.NUMERIC Jugement du format des données cellulaires
Style de cellule.ALIGN_CENTER HorizontalAlignment.CENTER Centrer la cellule horizontalement
CellStyle.VERTICAL_CENTER VerticalAlignment.CENTER Centrer la cellule verticalement
HSSFColor.GREY_25_PERCENT.index IndexedColors.GREY_25_PERCENT.index définir la couleur du motif
CellStyle.SOLID_FOREGROUND FillPatternType.SOLID_FOREGROUND définir le style de motif
Style de cellule.BORDER_THIN BorderStyle.THIN cadre
ClientAnchor.MOVE_DONT_RESIZE ClientAnchor.AnchorType.MOVE_DONT_RESIZE.value Image d'insertion de cellule

Pour plus de détails, veuillez consulter les fosses de la mise à niveau de la version poi (3.13 à 4.0.1)



question trois

Erreur 500 lors de la lecture d'Excel

Énoncé du problème :

Erreur 500 lors de la lecture d'Excel : L'erreur indiquée ici est le org/apache/commons/compresspackage jar manquant

java.lang.NoClassDefFoundError: org/apache/commons/compress/archivers/zip/ZipFile

La raison de l'erreur est que le package jar est manquant et que la mise à jour de la version nécessite un nouveau package jar pour coopérer, et toutpoi的jar包版本一定要相同

Solution

Ajoutez simplement le paquet jar manquant

Remarque : Lorsque vous utilisez poi pour l'importation et l'exportation, vous devez ajouter les packages jar suivants pour la consommation

commons-math3-3.6.1.jar

commons-compress-1.18.jar

poi-4.1.2.jar

poi-ooxml-4.1.2.jar

poi-ooxml-schemas-4.1.2.jar

poi-exemples-4.1.2.jar

poi-excelant-4.1.2.jar

poi-scratchpad-4.1.2.jar

Ce n'est qu'une partie du package jar. Si vous avez besoin d'un package jar mais pas dans le projet, téléchargez simplement le package jar et ajoutez-le au projet.



lien de référence

Ces fosses de mise à niveau de la version poi (3.13 à 4.0.1)

POI - Problèmes de compatibilité lors de la lecture d'Excel2003, Excel2007 ou supérieur


Plus de connaissances sont continuellement mises à jour !!!


déclaration

La source du texte original est indiquée dans la partie référence, et la source du texte original peut être obtenue sur le lien de référence de l'article

Si le contenu de l'article implique le droit d'auteur d'origine, veuillez contacter [email protected] par e-mail , et les articles ou contenus associés seront modifiés ou annulés à temps.

Je suppose que tu aimes

Origine blog.csdn.net/weixin_42464282/article/details/130990008
conseillé
Classement