qq_41811552 2018-04-04 03:00 采纳率: 100%
浏览 891
已结题

图片文件读取报错!!

文件number.doc原数据
图片说明
代码如下:
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import org.apache.poi.hwpf.extractor.WordExtractor;

public class Test {
public String readWord(String path) {
String buffer = "";

try {
if (path.endsWith(".doc")) {
InputStream is = new FileInputStream(new File(path));
WordExtractor ex = new WordExtractor(is);
buffer = ex.getText();
ex.close();
} else {
System.out.println("请选择后缀为.doc的文件");
}

} catch (Exception e) {
e.printStackTrace();
}
return buffer;
}
public static void main(String[] args) {
Test tp = new Test();
String content = tp.readWord("D:\number.doc"); //文件存放的地址
System.out.println("content===="+content);
}
}

myeclipse编译时信息
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.(HeaderBlock.java:131)
at org.apache.poi.poifs.storage.HeaderBlock.(HeaderBlock.java:104)
at org.apache.poi.poifs.filesystem.POIFSFileSystem.(POIFSFileSystem.java:128)
at org.apache.poi.hwpf.HWPFDocumentCore.verifyAndBuildPOIFS(HWPFDocumentCore.java:106)
at org.apache.poi.hwpf.extractor.WordExtractor.(WordExtractor.java:53)
at Test.readWord(Test.java:14)
at Test.main(Test.java:28)
content====

有知道原因的吗?

  • 写回答

3条回答 默认 最新

  • _1_1_7_ 2018-04-04 03:33
    关注

    用的api不对,错误信息里面已经告诉你了 (XSSF instead of HSSF),新版的office格式xlsx,需要新的那套api

    评论

报告相同问题?

悬赏问题

  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作