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 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)