Java Open \ LibreOffice在odt中插入文件\对象

时间:2018-10-19 12:22:41

标签: java libreoffice openoffice-writer odt

是否有任何方法或示例如何使用Open \ LibreOffice API for Java将文件\对象嵌入odt?

或其他一些API或语言。

1 个答案:

答案 0 :(得分:1)

下面是其中的摘要:

    public static void main(String[] args) {
    try {
        OdfDocument odfDoc = OdfDocument.loadDocument(new File("/home/geertjan/test.ods"));
        OdfFileDom odfContent = odfDoc.getContentDom();
        XPath xpath = odfDoc.getXPath();
        DTMNodeList nodeList = (DTMNodeList) xpath.evaluate("//table:table-row/table:table-cell[1]", odfContent, XPathConstants.NODESET);
        for (int i = 0; i < nodeList.getLength(); i++) {
            Node cell = nodeList.item(i);
            if (!cell.getTextContent().isEmpty()) {
                System.out.println(cell.getTextContent());
            }
        }
    } catch (Exception ex) {
        //Handle...
    }
}

让我们假设上面的“ test.ods”文件具有以下内容: enter image description here

从上面开始,代码清单将显示以下内容:

Cuthbert
Algernon
Wilbert

作为第二个示例,这是我阅读的OpenOffice Text文档的第一段:

public static void main(String[] args) {
    try {
        OdfDocument odfDoc = OdfDocument.loadDocument(new File("/home/geertjan/chapter2.odt"));
        OdfFileDom odfContent = odfDoc.getContentDom();
        XPath xpath = odfDoc.getXPath();
        OdfParagraphElement para = (OdfParagraphElement) xpath.evaluate("//text:p[1]", odfContent, XPathConstants.NODE);
        System.out.println(para.getFirstChild().getNodeValue());
    } catch (Exception ex) {
        //Handle...
    }
}

在我的类路径上,我有“ odfdom.jar”和“ xerces-2.8.0.jar”。