Für Projekte kürzlich müssen Sie einige Informationen in Word exportieren. Ich habe viele Lösungen online gefunden und jetzt werde ich die Zusammenfassung dieser Tage teilen.
Gegenwärtig gibt es ungefähr 6 Lösungen zum Exportieren von Wort aus Java:
1. Jacob ist die Abkürzung der Java-Com-Brücke, die eine Brücke zwischen Java und Microsofts COM-Komponenten baut. Verwenden Sie die DLL Dynamic Link Library, die mit Jacob geliefert wird, und der Anruf bei COM -Programmen auf der Java -Plattform wird durch JNI realisiert. Die Erzeugung der dynamischen Linkbibliothek von DLL erfordert Unterstützung von der Windows -Plattform. Diese Lösung kann nur auf der Windows -Plattform implementiert werden, was ihre Einschränkung darstellt.
2. Apache POI enthält eine Reihe von APIs, mit denen verschiedene Formatdateien basierend auf Microsoft Ole 2 Compound -Dokumentformat betrieben werden können. Durch diese APIs können Sie Excel, Word und andere Dateien in Java lesen und schreiben. Die Excel -Verarbeitung ist sehr leistungsfähig und sein Wort beschränkt sich auf das Lesen. Derzeit kann es nur einige einfache Dateioperationen implementieren und können keine Stile festlegen.
3. Java2Word ist eine Komponente (Klassenbibliothek), die MS -Office -Word -Dokumente in einem Java -Programm aufruft. Diese Komponente bietet einen einfachen Satz von Schnittstellen für ein Java -Programm, um seine Dienste aufzurufen, um Word -Dokumente zu betreiben. Zu diesen Diensten gehören: Öffnen eines Dokuments, Erstellen eines neuen Dokuments, das Finden von Text, das Ersetzen von Text, das Einfügen von Text, das Einfügen von Bildern, das Einfügen von Tabellen, das Einfügen von Text in Lesezeichen, Einfügen von Bildern, Einfügen von Tabellen usw. Füllen Sie Daten in eine Tabelle zum Lesen von Tabellendaten. Version 1.1 Verbesserte Funktionen: Geben Sie Textstile an und geben Sie Tabellenstile an. Auf diese Weise können Wortdokumente dynamisch eingegeben werden. Es ist eine gute Lösung.
4. Itext ist ein berühmtes Open -Source -Site SourceForge -Projekt, eine Java -Klassenbibliothek, mit der PDF -Dokumente generiert werden. Durch ITEXT können Sie nicht nur PDF- oder RTF -Dokumente generieren, sondern auch XML- und HTML -Dateien in PDF -Dateien umwandeln. Kraftvoll.
5. JSP Ausgangsstil. Diese Lösung ist einfach zu implementieren, aber der Handhabungsstil ist etwas fehlerhaft, und es kann ein einfacher Export verwendet werden.
6. Es ist sehr einfach, es in XML zu tun. Word unterstützt das XML -Format seit 2003. Die allgemeine Idee besteht darin, zuerst Office2003 oder 2007 zu verwenden, um den Wortstil zu bearbeiten, dann als XML zu speichern, die XML in eine Freemarker -Vorlage zu übersetzen und schließlich Java zu verwenden, um die Freemarker -Vorlage und den Ausgangsdokument vorzunehmen. Die auf diese Weise generierten Wortdokumente werden den Bürostandards vollständig getestet, und der Stil und die Inhaltskontrolle sind sehr bequem, und der Druck wird nicht deformiert. Die generierten Dokumente sind genau die gleichen wie die im Amt bearbeiteten Dokumente.
Basierend auf den Referenzen der oben genannten Informationen und einiger Online -Meinungen habe ich schließlich die 6. Exportlösung mit XML gewählt.
Hier sind die grundlegenden Beispiele, um einen einfachen Wortexport zu implementieren:
Um den Inhalt der Wortvorlage zu exportieren, ist das Pinyin -Teil der Teil, der im Code -Typ ersetzt wird. :
Speichern Sie dann die Word As .xml -Datei, öffnen Sie die Datei, suchen Sie den Titel und ändern Sie ihn auf $ {title} und ersetzen Sie den zu ersetzenden Inhalt. Ändern Sie dann das .xml -Datei -Suffix in .ftl und importieren Sie die .ftl -Vorlagendatei in das angegebene Verzeichnis. Laden Sie das JAR -Paket Freemarker.jar. Schreiben Sie Code: Code:
Hauptcode:
öffentliche Klasse WordTest {private configuration configuration = null; public WordTest () {configuration = new configuration (); configuration.setDefaultCoding ("utf-8"); } public static void main (string [] args) {wordest test = new WordTest (); test.CreateWord (); } public void createWord () {map <String, Objekt> datamap = new HashMap <String, Object> (); getData (Datamap); configuration.setClassForforMPlatelaDing (this.getClass (), ""); // Der Pfad, in dem sich die Vorlagendatei befindet, Template t = null; try {t = configuration.getTemplate ("test.ftl"); // Vorlagendatei} catch (ioException e) {e.printstacktrace (); } Datei outfile = new Datei ("d:/outfile"+math.random ()*10000+". Doc"); // Datei writer out = null; try {out = new bufferedWriter (neuer outputStreamWriter (neuer FileOutputStream (Outfile))); } catch (FilenotFoundException e1) {e1.printstacktrace (); } try {t.process (Datamap, out); // Füllen Sie die Fülldaten in die Vorlagendatei aus und geben Sie sie in die Zieldatei aus} catch (templateException e) {e.printstacktrace (); } catch (ioException e) {e.printstacktrace (); }} private void getData (MAP <String, Objekt> Datamap) {datamap.put ("title", "title"); Datamap.put ("Nian", "2016"); Datamap.put ("Yue", "3"); Datamap.put ("ri", "6"); Datamap.put ("shenheren", "lc"); Liste <map <String, Objekt >> list = new ArrayList <map <String, Objekt >> (); für (int i = 0; i <10; i ++) {map <String, Objekt> map = new HashMap <String, Object> (); map.put ("xuehao", i); map.put ("neirong", "content"+i); list.add (map); } Datamap.put ("Liste", Liste); }}Ändern Sie die .ftl -Datei, suchen Sie den Speicherort der Liste und fügen Sie die Liste der Datei hinzu. Fügen Sie die Liste <#List als l> zu seinem Header hinzu (fügen Sie einen <#List Ihren Sammlungsnamen als xxxx> hinzu) und fügen Sie </#List> zum Ende hinzu. Ändern Sie den Listeninhalt und fügen Sie l hinzu. zum Ausgabe des Namens. Zum Beispiel Xuehao, ändern Sie es in L.xuehao. Dies ist ein bisschen wie die Verwendung von EL -Ausdrücken.
Das Obige dreht sich alles um diesen Artikel, ich hoffe, es wird für das Lernen aller hilfreich sein.