APACHE POI 3.5 - Lecture de fichier XLSX - InvalidFormatException !

APACHE POI 3.5 - Lecture de fichier XLSX - InvalidFormatException ! - Java - Programmation

Marsh Posté le 27-05-2009 à 16:52:38    

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 :
  1. import org.apache.poi.ss.usermodel.Workbook;
  2. import org.apache.poi.xssf.usermodel.*;
  3. public class Toto
  4. {
  5.     public static void main(String[] args)
  6.     {
  7.        try
  8.        {
  9.           XSSFWorkbook wb= new XSSFWorkbook("c:\\DemoCell.xlsx" );
  10.           XSSFSheet sheet=(XSSFSheet)wb.getSheetAt(0);
  11.           int lastRowNum=sheet.getLastRowNum();
  12.           for(int i=0;i<lastRowNum;i++)
  13.           {
  14.                XSSFRow row=sheet.getRow(i);
  15.                int lastCellNum=row.getLastCellNum();
  16.                System.out.println("\n => LIGNE "+i+"\n" );
  17.                for(int j=0;j<lastCellNum;j++)
  18.                {
  19.                    XSSFCell cell=row.getCell(j);
  20.                    String s1=cell.getRawValue();
  21.                    System.out.println(s1+";" );
  22.                }
  23.           }
  24.       }
  25.       catch(Exception e)
  26.      {
  27.          e.printStackTrace();
  28.       }
  29.    }
  30. }


________________________________________________________
 
 
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.


Message édité par ludo_da le 27-05-2009 à 17:04:34
Reply

Marsh Posté le 27-05-2009 à 16:52:38   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed