Java Open \ LibreOffice вставить файл \ объект в odt - PullRequest
0 голосов
/ 19 октября 2018

Есть ли способ или пример, как встроить файл \ объект в odt, используя Open \ LibreOffice API для Java?

Или с некоторыми другими API или языками.

1 Ответ

0 голосов
/ 19 октября 2018

Вот фрагмент кода в действии:

    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:

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...
    }
}

Вкл.мой classpath у меня есть "odfdom.jar" и "xerces-2.8.0.jar".

...