Wie zum Bearbeiten von MS Word-Dokumenten mit Java?

Ich habe einige Word-Vorlagen, und meine Anforderung ist, ersetzen Sie einige der Wörter/Platzhalter in das Dokument auf der Grundlage der Benutzereingabe, die mit Java. Ich habe versucht, viele Bibliotheken, darunter auch 2-3 Versionen von docx4j aber nichts arbeiten, naja, Sie hat einfach nicht alles tun!

Ich weiß, diese Frage wurde vorher gefragt, aber ich habe versucht, alle Möglichkeiten, die ich kenne. Also, mit welcher java-Bibliothek, die ich kann "wirklich" ersetzen/Bearbeiten dieser Vorlagen? Meine Vorliebe gilt der "easy to use /Paar line of codes" - Typ-Bibliotheken.

Ich bin mit Java 8 und meinen MS-Word-Vorlagen sind in MS Word 2007.

Update

Dieser code geschrieben ist durch die Verwendung der Beispielcode von SO Mitglied Joop Eggen

public Main() throws URISyntaxException, IOException, ParserConfigurationException, SAXException
    {
        URI docxUri = new URI("C:/Users/Yohan/Desktop/yohan.docx");
        Map<String, String> zipProperties = new HashMap<>();
        zipProperties.put("encoding", "UTF-8");

         FileSystem zipFS = FileSystems.newFileSystem(docxUri, zipProperties);

           Path documentXmlPath = zipFS.getPath("/word/document.xml");

            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

            factory.setNamespaceAware(true);
            DocumentBuilder builder = factory.newDocumentBuilder();

            Document doc = builder.parse(Files.newInputStream(documentXmlPath));

            byte[] content = Files.readAllBytes(documentXmlPath);
            String xml = new String(content, StandardCharsets.UTF_8);
            //xml = xml.replace("#DATE#", "2014-09-24");
            xml = xml.replace("#NAME#", StringEscapeUtils.escapeXml("Sniper"));

            content = xml.getBytes(StandardCharsets.UTF_8);
            Files.write(documentXmlPath, content);
    }

Jedoch dies gibt die folgende Fehlermeldung

java.nio.file.ProviderNotFoundException: Provider "C" Not found

at: java.nio.file.FileSystems.newFileSystem(FileSystems.java:341) at java.nio.file.FileSystems.newFileSystem(FileSystems.java:341)

at java.nio.fileFileSystems.newFileSystem(FileSystems.java:276)
  • vielleicht für die Gegenleistung (würde ich gehen für Apache HWPF): stackoverflow.com/questions/203174/...
  • Link erstellt vor 5 Jahren. Java 8 war nicht dort zu dieser Zeit.
  • Ist MS Word 2007 schon .docx? Denn das format ist perfekt, können Sie einen java-zip-Datei-system und ändern /word/content.xml. Die Bibliotheken übernehmen keine Gewähr für die original-format.
  • leider ist es in der Tat, kann zu Problemen führen 🙁
  • Ja, es ist Docx. Bevorzugen, um zu sehen, eine Bibliothek, wissen Sie, einfach.
  • Gibt es eine Beispiel-code?
  • Die XML ist lesbar, auch das laden der DOM (oder nur text), ersetzen Sie die Platzhalter und fertig. Aber bin ich vielleicht zu naiv w.r.t. die Anforderungen. Umbenennen .docx in .zip und werfen Sie einen Blick. Ich werde einige Beispiel-code nach einem moment.
  • Ich habe nie etwas gemacht, das mit Word, aber ich habe einmal verwendet Apache POI für Excel-und es funktionierte ziemlich gut, für beide .xls-und .xlsx: poi.apache.org

InformationsquelleAutor PeakGen | 2014-09-24
Schreibe einen Kommentar