3 votes

Lecture de MS Word 2007 à l'aide de Java

J'essaie de lire un fichier Microsoft Word via Java. J'ai inclus tous les fichiers .jar de Apache poi-3.8-beta1 dans mon classpath. Cependant, lorsque j'essaie de l'exécuter, j'obtiens l'exception suivante :

org.apache.poi.poifs.filesystem.OfficeXmlFileException: 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)
        at org.apache.poi.poifs.storage.HeaderBlock.<init>(HeaderBlock.java:131)
        at org.apache.poi.poifs.storage.HeaderBlock.<init>(HeaderBlock.java:104)
        at org.apache.poi.poifs.filesystem.POIFSFileSystem.<init>(POIFSFileSystem.java:138)
        at readingmsword07.Main.main(Main.java:27)

Voici mon code :

import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.*;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.xwpf.usermodel.XWPFDocument;

public class Main {

    public static void main(String[] args) {
        try {
            FileInputStream fis = new FileInputStream("C:\\TrialDoc.docx");
            POIFSFileSystem fileSystem = new POIFSFileSystem(fis);            
            org.apache.poi.xwpf.extractor.XWPFWordExtractor oleTextExtractor =
            new XWPFWordExtractor(new XWPFDocument(fis));
            System.out.print(oleTextExtractor.getText());            
        } catch (Exception e) {
                e.printStackTrace();
        }
    }

}

J'utilise le XWPFWordExtractor car j'essaie de lire un document Word 2007 mais, pour une raison quelconque, je ne parviens pas à trouver le bon POI qui s'occupe de cela.

Toute aide est la bienvenue. Merci d'avance !

~ Woods

4voto

sbridges Points 16284

Supprimer la ligne,

POIFSFileSystem fileSystem = new POIFSFileSystem(fis);

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