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-ooxml
dans 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/compress
package 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.