无法使用docx4j从表中获取文本

时间:2017-07-06 18:15:58

标签: java xml text tabular docx4j

我只是想输出表格中的数据,但是我只设法打印出内存位置和其他obj信息。在这里,我使用一个tablefinder来查找word doc中的所有表,然后遍历它们。我真是难以置信地如何打印出这些表中包含的数据。下面是我正在使用的Text.docx的图像以及代码片段。要清楚,我不确定是否应该访问表格行(Tr),如此代码片段所示,或者父Tbl对象打印出表格中包含的文本。在这种情况下,我只想打印“我”,“只是”,“想要”......等等。

enter image description here

    WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(new File("C:\\Users\\1120248\\Test\\Test.docx"));
    MainDocumentPart documentPart = wordMLPackage.getMainDocumentPart();

    TableFinder finder = new TableFinder();
    new TraversalUtil(documentPart.getContent(), finder);

    System.out.println("Found " + finder.tblList.size()  + "tables");

    for (Object o : finder.tblList) {

        Object o2 = XmlUtils.unwrap(o);     

        if (o2 instanceof org.docx4j.wml.Tbl) {

            Tbl tbl = (Tbl)o2;
            Tr t = (Tr)tbl.getContent().get(0);

            System.out.println(t.getContent());
            System.out.println(t.toString());
            System.out.println(XmlUtils.unwrap(t.getContent().get(0)));
        }
    }

这是此设置产生的输出:

[javax.xml.bind.JAXBElement@a146b11,javax.xml.bind.JAXBElement@f438904,javax.xml.bind.JAXBElement@4ed5a1b0,javax.xml.bind.JAXBElement@18d003cd,javax.xml.bind。 JAXBElement @ 3135bf25,javax.xml.bind.JAXBElement @ 22ad1bae]

org.docx4j.wml.Tr@4116f66a

org.docx4j.wml.Tc@59c04bee

0 个答案:

没有答案