Java &引用;该文档实际上是一个OOXML文件;打开文档文件时
当我尝试使用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)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
我已经包括了
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: