我有excel文件,其中嵌入了两个Ms Word文件。 我正在使用Apache POI从java中的excel文件中读取Embedded对象。 问题是当我读取嵌入文件并将其保存在磁盘上并在Ms Word中打开保存的文件时,MS Word无法读取其格式。 如果从excel文件直接打开它,它会打开并且Word正确读取它。 任何人帮助我。 [代码]
public class test {
public static void main(String[] args) throws Exception {
File file = new File("C:/Book2.xls");
NPOIFSFileSystem fs = new NPOIFSFileSystem(file);
HSSFWorkbook wb = new HSSFWorkbook(fs.getRoot(), true);
for (HSSFObjectData obj : wb.getAllEmbeddedObjects()) {
String oleName = obj.getOLE2ClassName();
DirectoryNode dn = (DirectoryNode)obj.getDirectory();
Iterator<Entry> ab = dn.getEntries();
if(oleName.contains("Document")){
HWPFDocument embeddedWordDocument = new HWPFDocument(dn);
String docTitle = embeddedWordDocument.getSummaryInformation().getTitle();
InputStream is ;
Entry entry = ab.next();
is = dn.createDocumentInputStream(entry);
FileOutputStream fos = new FileOutputStream("d:/"+docTitle+".doc");
System.out.println(is.available());
System.out.println(((DocumentEntry)entry).getSize());
IOUtils.copy(is, fos);
fos.close();
is.close();
}
}
fs.close();
}
}