Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java &引用;该文档实际上是一个OOXML文件;打开文档文件时_Java_Apache Poi - Fatal编程技术网

Java &引用;该文档实际上是一个OOXML文件;打开文档文件时

Java &引用;该文档实际上是一个OOXML文件;打开文档文件时,java,apache-poi,Java,Apache Poi,当我尝试使用apache poi 3.17读取文档文件的内容时,会出现以下错误: java.lang.IllegalArgumentException: The document is really a OOXML file at org.apache.poi.hwpf.HWPFDocumentCore.verifyAndBuildPOIFS(HWPFDocumentCore.java:123) at org.apache.poi.hwpf.HWPFDocument.(HWPFD

当我尝试使用apache poi 3.17读取文档文件的内容时,会出现以下错误:

java.lang.IllegalArgumentException: The document is really a OOXML file at org.apache.poi.hwpf.HWPFDocumentCore.verifyAndBuildPOIFS(HWPFDocumentCore.java:123) at org.apache.poi.hwpf.HWPFDocument.(HWPFDocument.java:169) at project12.Home12.button1ActionPerformed(Home12.java:312) at project12.Home12.access$300(Home12.java:24) at project12.Home12$3.actionPerformed(Home12.java:113) at java.awt.Button.processActionEvent(Button.java:409) at java.awt.Button.processEvent(Button.java:377) at java.awt.Component.dispatchEventImpl(Component.java:4889) at java.awt.Component.dispatchEvent(Component.java:4711) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90) at java.awt.EventQueue$4.run(EventQueue.java:731) at java.awt.EventQueue$4.run(EventQueue.java:729) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) java.lang.IllegalArgumentException:该文档实际上是一个OOXML文件 位于org.apache.poi.hwpf.HWPFDocumentCore.verifyAndBuildPOIFS(HWPFDocumentCore.java:123) 在org.apache.poi.hwpf.HWPFDocument上(HWPFDocument.java:169) 在project12.Home12.button1ActionPerformed(Home12.java:312) 在project12.Home12.access$300(Home12.java:24) 在project12.Home12$3.actionPerformed(Home12.java:113) 位于java.awt.Button.processActionEvent(Button.java:409) 位于java.awt.Button.processEvent(Button.java:377) 位于java.awt.Component.dispatchEventImpl(Component.java:4889) 位于java.awt.Component.dispatchEvent(Component.java:4711) 位于java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) 在java.awt.EventQueue.access$500(EventQueue.java:97) 在java.awt.EventQueue$3.run(EventQueue.java:709) 在java.awt.EventQueue$3.run(EventQueue.java:703) 位于java.security.AccessController.doPrivileged(本机方法) 位于java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) 位于java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90) 在java.awt.EventQueue$4.run(EventQueue.java:731) 在java.awt.EventQueue$4.run(EventQueue.java:729) 位于java.security.AccessController.doPrivileged(本机方法) 位于java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) 位于java.awt.EventQueue.dispatchEvent(EventQueue.java:728) 位于java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) 在java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)中 位于java.awt.EventDispatchThread.PumpeEventsforHierarchy(EventDispatchThread.java:105) 位于java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) 位于java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) 在java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
我已经包括了
xmlbeans-2.6.0.jar
dom4j-1.6.1.jar
,但问题仍然存在。

当您尝试读取.doc文件时,如果它们实际上是docx格式的,就会发生这种情况

在这种情况下,请使用
XWPFDocument
类而不是
HWPFDocument


干杯!:)

请显示生成此异常的代码,以及您尝试打开的文件名。它是.doc还是.docx文件?似乎您正试图将.docx解析为.doc。你的文档真的是.doc吗?当使用POI时,有不同的类来解析.doc和.docx。@rgetman我现在就发布代码。是的,您可以,但您需要使用适当的类来完成此操作。HWPF用于.doc,XWPF用于.docx。请看这里:。您的示例使用的是XWPF基础架构,但您正在尝试打开一个.doc文件。这个答案不仅仅是查看文件扩展名来决定doc还是docx: