我正在尝试从Word文档中的嵌入式excel表中提取数据。为此,我认为我需要能够从包装件中创建输入流。我不知道该怎么做。我尝试了以下方法:
XWPFDocument document = new XWPFDocument(filename);
List<PackagePart> embeddedDocs = document.getAllEmbedds();
if (embeddedDocs != null && !embeddedDocs.isEmpty()) {
Iterator<PackagePart> pIter = embeddedDocs.iterator();
while (pIter.hasNext()) {
PackagePart pPart = pIter.next();
AutoDetectParser parser = new AutoDetectParser();
BodyContentHandler handler = new BodyContentHandler();
Metadata metadata = new Metadata();
InputStream EmbeddedThing = new FileInputStream(pPart.getPartName().toString())
parser.parse(EmbeddedThing, handler, metadata);
}
}
但是我得到了错误:
word/embeddings/Microsoft_Excel_Worksheet1.xlsx java.io.FileNotFoundException
所以我想我不能将嵌入的工作表文件名用作输入流的源。
有没有一种方法可以将包部分直接转换为输入流,而不必调用文件源路径。另一种方法(最终是)是否有一种方法,可以只从工作表中提取数据而无需输入流等?