word解析The supplied data appears to be in the OLE2 Format. You are calling
时间: 2023-12-14 13:34:34 浏览: 286
这个错误通常是因为你正在尝试使用Apache POI解析doc格式的Word文档,而不是docx格式的Word文档。doc格式的Word文档使用的是OLE2格式,而不是OOXML格式,因此你需要使用Apache POI的HSSF库来处理这种类型的文档。以下是一个使用HSSF库解析doc格式Word文档的示例代码:
```java
FileInputStream fis = new FileInputStream("example.doc");
POIFSFileSystem fs = new POIFSFileSystem(fis);
HWPFDocument doc = new HWPFDocument(fs);
WordExtractor extractor = new WordExtractor(doc);
String text = extractor.getText();
System.out.println(text);
```
这段代码使用了Apache POI的HWPF库来解析doc格式的Word文档。它首先创建一个FileInputStream对象来读取文件,然后使用POIFSFileSystem对象将文件系统中的数据读入内存。接下来,它创建一个HWPFDocument对象来表示Word文档,并使用WordExtractor对象从文档中提取文本。最后,它将提取的文本打印到控制台上。
相关问题
poi解析docx格式The supplied data appears to be in the OLE2 Format. You are calling
在解析docx格式的word文档时,如果出现"The supplied data appears to be in the OLE2 Format. You are calling the part"的错误提示,通常是因为使用了错误的POI库来处理文档。正确的处理方式是使用XWPFWordExtractor类来解析docx格式的文档。以下是一个示例代码:
```java
import java.io.FileInputStream;
import java.io.IOException;
import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
public class DocxParser {
public static void main(String[] args) {
try {
FileInputStream fis = new FileInputStream("example.docx");
XWPFDocument doc = new XWPFDocument(fis);
XWPFWordExtractor extractor = new XWPFWordExtractor(doc);
String text = extractor.getText();
System.out.println(text);
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在上述代码中,我们首先使用FileInputStream类读取docx文件,然后使用XWPFDocument类将文件内容加载到内存中。接着,我们使用XWPFWordExtractor类从XWPFDocument对象中提取文本内容,并将其打印到控制台上。
The supplied data appears to be in the OLE2 Format. You are calling the part of POI that deals with OOXML
"The supplied data appears to be in the OLE2 Format. You are calling the part of POI that deals with OOXML (Office Open XML) Documents. You need to call a different part of POI to process this data (e.g. HSSF instead of XSSF)"这个错误是由于使用了错误的POI部分处理给定的数据格式引起的。您需要调用POI的另一个部分来处理数据。具体来说,如果您处理的是doc文件,应该使用HWPFDocument来读取;如果您处理的是xls文件,应该使用HSSFWorkbook来读取。如果您处理的是docx文件,应该使用XWPFDocument来读取;如果您处理的是xlsx文件,应该使用XSSFWorkbook来读取。请根据您所处理的文件类型选择正确的POI部分进行处理。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [The supplied data appears to be in the OLE2 Format.](https://blog.csdn.net/qq_40014707/article/details/114318042)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *3* [POI OLE2NotOfficeXmlFileException:The supplied data appears to be in the OLE2 Format问题解决](https://blog.csdn.net/qq_38974638/article/details/116210340)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文