113 votes

Impossible d'importer XSSF dans Apache POI

Je me réfère à la version 3.7 du POI Apache et j'obtiens une erreur "cannot be resolved" lorsque je le fais :

import org.apache.poi.xssf.usermodel.XSSFWorkbook;

Autres déclarations d'importation qui font référence à la POI NE PAS me donnent des erreurs, telles que :

import org.apache.poi.ss.usermodel.*;

Des idées ?

6voto

J'ai la solution, les gars

Vous devez garder certains points à l'esprit.

  1. Il existe deux dépendances différentes : l'une est ( poi ) et l'autre dépendance est ( poi- ooxml ) mais assurez-vous que vous devez utiliser la dépendance poi-ooxml dans votre code.

  2. Ajoutez simplement la dépendance suivante dans le fichier pom.xml et sauvegardez-le.

    <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.9</version> </dependency>

Après avoir sauvegardé le pom.xml, vous devez essayer une petite chose : l'opérateur Use (.). (.) va essayer de l'importer/récupérer et finalement ne verra aucune sorte d'erreur parce que maintenant il a importé cette chose dans votre paquet.

Un exemple de code pour mieux comprendre !

package ReadFile;// package   
import org.apache.poi.xssf.usermodel.XSSFWorkbook;  // automatically added to your code after importing
public class Test          
{  
public static void Hello() // Method  
{  
XSSFWorkbook workbook = new XSSFWorkbook();   
}  
}

J'ai fait de mon mieux pour vous donner la solution, si vous rencontrez un problème, commentez ici, je vais essayer.
pour le résoudre.

Continuez à apprendre les gars !

2voto

Aman Khatri Points 21

1) importé tous les JARS du dossier POI 2) Importation de tous les JARS du dossier ooxml, qui est un sous-répertoire du dossier POI. 3) Importation de tous les JARS du dossier lib, qui est un sous-répertoire du dossier POI.

String fileName = "C:/File raw.xlsx";
File file = new File(fileName);
FileInputStream fileInputStream;
Workbook workbook = null;
Sheet sheet;
Iterator<Row> rowIterator;
try {
        fileInputStream = new FileInputStream(file);
        String fileExtension = fileName.substring(fileName.indexOf("."));
        System.out.println(fileExtension);
        if(fileExtension.equals(".xls")){
        workbook  = new HSSFWorkbook(new POIFSFileSystem(fileInputStream));
        }
        else if(fileExtension.equals(".xlsx")){
        workbook  = new XSSFWorkbook(fileInputStream);
        }
        else {
        System.out.println("Wrong File Type");
        } 
        FormulaEvaluator evaluator workbook.getCreationHelper().createFormulaEvaluator();
        sheet = workbook.getSheetAt(0);
        rowIterator = sheet.iterator();
        while(rowIterator.hasNext()){
        Row row = rowIterator.next();
        Iterator<Cell> cellIterator = row.cellIterator();
        while (cellIterator.hasNext()){
        Cell cell = cellIterator.next();
        //Check the cell type after evaluating formulae
       //If it is formula cell, it will be evaluated otherwise no change will happen
        switch (evaluator.evaluateInCell(cell).getCellType()){
        case Cell.CELL_TYPE_NUMERIC:
        System.out.print(cell.getNumericCellValue() + " ");
        break;
        case Cell.CELL_TYPE_STRING:
        System.out.print(cell.getStringCellValue() + " ");
        break;
        case Cell.CELL_TYPE_FORMULA:
        Not again
        break;
        case Cell.CELL_TYPE_BLANK:
        break;
        }
}
 System.out.println("\n");
}
//System.out.println(sheet);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e){
e.printStackTrace();
}​

1voto

Mr Redstoner Points 90

J'ai eu le même problème, j'ai donc fouillé dans le fichier poi-3.17.jar et il n'y avait pas de paquet xssf dedans.

J'ai ensuite parcouru les autres fichiers et j'ai trouvé xssf dans le fichier poi-ooxml-3.17.jar.

Il semble donc que la solution soit d'ajouter

poi-ooxml-3.17.jar

à votre projet, car cela semble le faire fonctionner (pour moi du moins).

1voto

Sanchi Tyagi Points 11

Après avoir essayé plusieurs choses, ce qui a vraiment marché c'est : 1. télécharger "poi" et "poi-ooxml" manuellement 2. ajouter ces jars d/w dans "Maven Dependencies" (dépendances Maven)

1voto

Réel pour les jours du 06.11.2021 :

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>5.1.0</version>
</dependency>

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>5.1.0</version>
</dependency>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X