Java 如何从文档文件中读取嵌入对象?
我正在尝试使用POIFS文件系统读取.doc文件中的嵌入文档。据此,有一个ObjectPool目录,其中包含所有嵌入文档,尤其是文档文件。Java 如何从文档文件中读取嵌入对象?,java,apache-poi,Java,Apache Poi,我正在尝试使用POIFS文件系统读取.doc文件中的嵌入文档。据此,有一个ObjectPool目录,其中包含所有嵌入文档,尤其是文档文件。 我找到了目录,但不知道怎么读这些文件 请建议阅读这些文件的任何方式。如果POIFS不是合适的方法,那么请建议其他库 我的代码是: 您是否尝试阅读和?是的,我已经阅读了这些链接,并以相同的方式进行了尝试。我找到了嵌入文件的位置,但无法读取文件的内容。请提供一个从嵌入文件中读取内容的示例代码。是否有人建议提取和读取嵌入文件的通用方法。您是否尝试在Apache
我找到了目录,但不知道怎么读这些文件
请建议阅读这些文件的任何方式。如果POIFS不是合适的方法,那么请建议其他库 我的代码是:
您是否尝试阅读和?是的,我已经阅读了这些链接,并以相同的方式进行了尝试。我找到了嵌入文件的位置,但无法读取文件的内容。请提供一个从嵌入文件中读取内容的示例代码。是否有人建议提取和读取嵌入文件的通用方法。您是否尝试在Apache POI网站上使用该代码?如果是,您发现了什么问题?若否,原因为何?如果你展示你的代码,我们可以帮助你更好…谢谢你的支持。我已经找到了读取嵌入文档内容的方法,但我想提取整个嵌入文件。我已经在问题中插入了代码。请查看代码并帮助我。
public static void ReadCSV(String fileName) throws IOException{
FileInputStream myInput = new FileInputStream(fileName);
POIFSFileSystem fs = new POIFSFileSystem(myInput);
HSSFWorkbook workbook = new HSSFWorkbook(fs);
for (HSSFObjectData obj : workbook.getAllEmbeddedObjects()) {
//the OLE2 Class Name of the object
System.out.println("Objects : "+ obj.getOLE2ClassName()+ " 2 .");
String oleName = obj.getOLE2ClassName();
if (oleName.equals("Worksheet")) {
// some code to process embedded excel file;
} else if (oleName.equals("Document")) {
System.out.println("Document");
DirectoryNode dn = (DirectoryNode) obj.getDirectory();
HWPFDocument embeddedWordDocument = new HWPFDocument(dn,fs);
System.out.println("Doc : " + embeddedWordDocument.getRange().text());
// want to extract document not text into a doc file
//************************
FileOutputStream fos = new FileOutputStream("E:\\log.txt");
fos.write(text.getBytes());
//************************
} else if (oleName.equals("Presentation")) {
// some code to process embedded power point file;
} else {
// some code to process other kind of embedded files;
}
}
}