Java 异常org.apache.poi.poifs.filesystem.OfficeXmlFileException-apache.poi 4.0.0

Java 异常org.apache.poi.poifs.filesystem.OfficeXmlFileException-apache.poi 4.0.0,java,apache-poi,Java,Apache Poi,我正在尝试阅读Microsoft Word 2016文档,但我无法 private String readDoc(String path) { String content = ""; try { File file = new File(path); FileInputStream fis = new FileInputStream(file.getAbsolutePath()); HWPFDocument doc = new HWPFDocument(fis);

我正在尝试阅读Microsoft Word 2016文档,但我无法

private String readDoc(String path) {
String content = "";
try {
    File file = new File(path);
    FileInputStream fis = new FileInputStream(file.getAbsolutePath());

    HWPFDocument doc = new HWPFDocument(fis);

    WordExtractor we = new WordExtractor(doc);
    String[] paragraphs = we.getParagraphText();
    for (String para : paragraphs) {
        content += para.toString();
    }
    fis.close();
    return content;
} catch (Exception e) {
    e.printStackTrace();
}
return content;
}
线程“main”org.apache.poi.poifs.filesystem.OfficeXmlFileException中的异常:提供的数据似乎位于Office 2007+XML中。您正在调用POI中处理OLE2 Office文档的部分。您需要调用POI的不同部分来处理此数据(例如XSSF而不是HSSF)

我不明白。。。为什么它会给我这个例外,因为我没有使用任何XSSF(我想)。

试试这个:

FileInputStream fis = new FileInputStream("test.docx");
XWPFDocument xdoc = new XWPFDocument(OPCPackage.open(fis));
XWPFWordExtractor extractor = new XWPFWordExtractor(xdoc);
System.out.println(extractor.getText());
它可以帮助理解这一点:

POIFS(文件系统的模糊处理实现较差)− 此组件 是所有其他POI元素的基本要素。它是用来阅读的 明确地定义不同的文件

HSSF(可怕的电子表格格式)− 它用于读写.xls MS Excel文件的格式

XSSF(XML电子表格格式)− 它用于的.xlsx文件格式 Excel女士

HPSF(可怕的属性集格式)− 它用于提取属性 MS Office文件集

HWPF(可怕的文字处理器格式)− 它是用来读和写的 .doc MS Word的扩展文件

XWPF(XML字处理器格式)− 它用于读写。docx MS Word的扩展文件

HSLF(可怕的幻灯片布局格式)− 它用于读取、创建和保存数据 编辑PowerPoint演示文稿

HDGF(可怕的图表格式)− 它包含用于 MS Visio二进制文件

HPBF(可怕的出版商格式)− 它是用来读和写的 MS Publisher文件

试试这个:

FileInputStream fis = new FileInputStream("test.docx");
XWPFDocument xdoc = new XWPFDocument(OPCPackage.open(fis));
XWPFWordExtractor extractor = new XWPFWordExtractor(xdoc);
System.out.println(extractor.getText());
它可以帮助理解这一点:

POIFS(文件系统的模糊处理实现较差)− 此组件 是所有其他POI元素的基本要素。它是用来阅读的 明确地定义不同的文件

HSSF(可怕的电子表格格式)− 它用于读写.xls MS Excel文件的格式

XSSF(XML电子表格格式)− 它用于的.xlsx文件格式 Excel女士

HPSF(可怕的属性集格式)− 它用于提取属性 MS Office文件集

HWPF(可怕的文字处理器格式)− 它是用来读和写的 .doc MS Word的扩展文件

XWPF(XML字处理器格式)− 它用于读写。docx MS Word的扩展文件

HSLF(可怕的幻灯片布局格式)− 它用于读取、创建和保存数据 编辑PowerPoint演示文稿

HDGF(可怕的图表格式)− 它包含用于 MS Visio二进制文件

HPBF(可怕的出版商格式)− 它是用来读和写的 MS Publisher文件