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 :
- 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.
Message édité par ludo_da le 27-05-2009 à 17:04:34