我想从没有扩展名的 Excel (xls/HSSF) 中保存所有附加文件。我已经尝试了很长时间,我真的不知道这是否可能。我也尝试过 Apache Tika,但我不想为此使用 Tika,因为无论如何我需要 POI 来完成其他任务。
我尝试了Busy Developers Guide中的示例代码,但这不会以旧的 office 格式(doc、ppt、xls)提取文件。并且在尝试创建错误时会引发new SlideShow(new HSLFSlideShow(dn, fs))
错误:(Remove argument to match HSLFSlideShow(dn))
我的实际代码是:
public static void saveEmbeddedXLS(InputStream fis_param, String embDIR) throws IOException, InvalidFormatException{
//HSSF - XLS
int i = 0;
System.out.println("Starting Embedded Search in xls...");
POIFSFileSystem fs = new POIFSFileSystem(fis_param);//create FileSystem using fileInputStream
HSSFWorkbook workbook = new HSSFWorkbook(fs);
for (HSSFObjectData obj : workbook.getAllEmbeddedObjects()) {
System.out.println("Objects : "+ obj.getOLE2ClassName());//the OLE2 Class Name of the object
String oleName = obj.getOLE2ClassName();//Document Type
DirectoryNode dn = (DirectoryNode) obj.getDirectory();//get Directory Node
//Trying to create an input Stream with the embedded document, argument of createDocumentInputStream should be: String; Where/How can I get this correct parameter for the function?
InputStream is = dn.createDocumentInputStream(dn);//This line is incorrect! How can I do i correctly?
FileOutputStream fos = new FileOutputStream("embDIR" + i);//Outputfilepath + Number
IOUtils.copy(is, fos);//FileInputStream > FileOutput Stream (save File without extension)
i++;
}
}
所以我的简单问题是: 是否可以从没有任何扩展名的 xls 文件中保存所有附件(尽可能简单)?任何人都可以为我提供解决方案吗?非常感谢!