从零件tika

时间:2018-08-14 08:33:43

标签: java

我正在尝试从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    

所以我想我不能将嵌入的工作表文件名用作输入流的源。

有没有一种方法可以将包部分直接转换为输入流,而不必调用文件源路径。另一种方法(最终是)是否有一种方法,可以只从工作表中提取数据而无需输入流等?

0 个答案:

没有答案