Bonjour à tous,

Je viens de récupérer la dernier version du module POI d'Apache (poi-3.5-beta5-20090219.jar) afin de lire et d'écrire des fichiers EXCEL 2007 (.xlsx), mais je n'arrive même pas à faire fonctionner un exemple tout simple...

J'ai investigué tout l'après-midi et je ne trouve pas pourquoi. Voici l'exception générée lorsque j'essaye de lire un fichier ".xlsx":

Exception in thread "main" org.apache.poi.openxml4j.exceptions.InvalidFormatException: Can't read content types part !


Que ce soit un fichier issu directement d'EXCEL 2007 ou un fichier généré par POI lui-même, l'exception est levée...

Voici le code source de ma classe qui essaye de lire un fichier, rien de plus simple:

________________________________________________________

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.*;

public class Toto
{
    public static void main(String[] args) 
    {
       try
       { 
          XSSFWorkbook wb= new XSSFWorkbook("c:\\DemoCell.xlsx");
          XSSFSheet sheet=(XSSFSheet)wb.getSheetAt(0);
          int lastRowNum=sheet.getLastRowNum();
			
          for(int i=0;i<lastRowNum;i++)
          {
               XSSFRow row=sheet.getRow(i);
               int lastCellNum=row.getLastCellNum();
               System.out.println("\n => LIGNE "+i+"\n");
				
               for(int j=0;j<lastCellNum;j++)
               {
                   XSSFCell cell=row.getCell(j);
                   String s1=cell.getRawValue();
                   System.out.println(s1+";");
               }
          }
      }
      catch(Exception e)
     {
         e.printStackTrace();
      }
   }
}
________________________________________________________


C'est l'instanciation new XSSFWorkbook("c:\\DemoCell.xlsx"); qui plante.

En regardant sur le net, je vois en effet qu'un document OPEN XML doit avoir un type reconnu, par exemple:

* docx : application/vnd.openxmlformats-officedocument.wordprocessingml.document

* xlsx : application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

etc...

Dans mon cas (Can't read content types part !), l'API n'arrive pas à reconnaitre le type de contenu de mon fichier xlsx, mais pourquoi ???

Avez-vous une idée ? Avez-vous déjà rencontré ce probléme ? Et si oui comment l'avez-vous résolu ?

J'ai cherché sur plusieurs forum US, l'exception InvalidFormatException a déjà été rencontrée, mais sans réponse satisfaisante...

Vous m'aideriez beaucoup si vous aviez la solution, car la je sèche...

Merci d'avance.