Erstellen Sie Tabellen in Word Dokumenten mit Java

Microsoft Word ist eine beliebte Textverarbeitungsanwendung, die zum Erstellen verschiedener Arten von Dokumenten verwendet wird. Diese Dokumente können verschiedene Arten von Elementen enthalten, darunter Text, Bilder, Tabellen und Diagramme. Wenn es um die Automatisierung der Dokumenterstellung und -bearbeitung in Java geht, benötigen Sie möglicherweise eine mühelose Lösung zum Erstellen von Tabellen in Word Dokumenten. In diesem Blogbeitrag untersuchen wir, wie man Tabellen in Word Dokumenten in einer Java-Anwendung erstellt.

Java-Bibliothek zum Erstellen von Tabellen in Word Dokumenten

Aspose.Words for Java ist eine API, die es Java-Entwicklern ermöglicht, programmgesteuert mit Microsoft Word Dokumenten zu arbeiten. Es bietet eine breite Palette von Funktionen zum Erstellen, Ändern und Bearbeiten von Word Dokumenten und ist damit ein wertvolles Werkzeug für die Automatisierung von Dokumentenerstellungs und -verarbeitungsaufgaben. Wir werden diese Bibliothek verwenden, um Tabellen in ein Word Dokument einzufügen.

Sie können die Bibliothek herunterladen oder mit den folgenden Maven-Konfigurationen installieren.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-words</artifactId>
    <version>23.10</version>
    <classifier>jdk17</classifier>
</dependency>

Erstellen Sie eine Tabelle in einem Word Dokument in Java

Es gibt zwei Möglichkeiten, Tabellen in Word Dokumenten mit Aspose.Words for Java zu erstellen:

  • Verwenden von DocumentBuilder
  • Verwendung von DOM (Document Object Model)

Sie können die Methode wählen, die Ihren Anforderungen am besten entspricht. Lassen Sie uns jede dieser Methoden im Detail untersuchen.

Erstellen Sie eine Tabelle mit DocumentBuilder

Die Klasse DocumentBuilder bietet Ihnen eine schnelle und einfache Möglichkeit, dynamische Dokumente von Grund auf zu erstellen oder vorhandene Dokumente zu verarbeiten. Es bietet eine Reihe von Funktionen zum Einfügen verschiedener Inhaltselemente wie Texte, Kontrollkästchen, OLE Objekte, Absätze, Listen, Tabellen, Bilder und mehr.

Im Folgenden sind die Schritte aufgeführt, die mithilfe der DocumentBuilder Klasse eine Tabelle in einem Word Dokument in Java erstellen.

  • Erstellen Sie ein Objekt der Document Klasse, um das Word Dokument zu laden oder zu erstellen.
  • Erstellen Sie ein Objekt der DocumentBuilder Klasse.
  • Starten Sie eine Tabelle mit der Methode DocumentBuilder.startTable().
  • Fügen Sie eine Zelle mit der Methode DocumentBuilder.insertCell() ein.
  • (Optional) Wenden Sie Formatierungen auf die Zelle an, z. B. Schriftart und Ausrichtung.
  • Fügen Sie mit der Methode DocumentBuilder.write() Text in die Zelle ein.
  • Wiederholen Sie das Einfügen von Zellen und Text in Zellen nach Bedarf.
  • Beenden Sie eine Zeile, wenn Sie das Einfügen von Zellen mit der Methode DocumentBuilder.endRow() abgeschlossen haben.
  • Endtabelle, wenn Sie alle Zeilen mit der Methode DocumentBuilder.endTable() eingefügt haben.
  • Speichern Sie das Word Dokument mit der Methode Document.save().

Der folgende Codeausschnitt zeigt, wie Sie mit Java eine Tabelle in einem Word Dokument erstellen.

// Dokument erstellen oder laden.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Erstellen Sie eine neue Tabelle und fügen Sie eine Zelle ein.
Table table = builder.startTable();
builder.insertCell();

// Die tabellenweite Formatierung muss angewendet werden, nachdem mindestens eine Zeile in der Tabelle vorhanden ist.
table.setLeftIndent(20.0);

// Legen Sie die Höhe fest und definieren Sie die Höhenregel für die Kopfzeile.
builder.getRowFormat().setHeight(40.0);
builder.getRowFormat().setHeightRule(HeightRule.AT_LEAST);

builder.getCellFormat().getShading().setBackgroundPatternColor(new Color((198), (217), (241)));
builder.getParagraphFormat().setAlignment(ParagraphAlignment.CENTER);
builder.getFont().setSize(16.0);
builder.getFont().setName("Arial");
builder.getFont().setBold(true);

builder.getCellFormat().setWidth(100.0);
builder.write("Header Row,\n Cell 1");

// Wir müssen die Breite dieser Zelle nicht angeben, da sie von der vorherigen Zelle geerbt wird.
builder.insertCell();
builder.write("Header Row,\n Cell 2");

builder.insertCell();
builder.getCellFormat().setWidth(200.0);
builder.write("Header Row,\n Cell 3");
builder.endRow();

builder.getCellFormat().getShading().setBackgroundPatternColor(Color.WHITE);
builder.getCellFormat().setWidth(100.0);
builder.getCellFormat().setVerticalAlignment(CellVerticalAlignment.CENTER);

// Setzen Sie die Höhe zurück und definieren Sie eine andere Höhenregel für den Tabellenkörper.
builder.getRowFormat().setHeight(30.0);
builder.getRowFormat().setHeightRule(HeightRule.AUTO);
builder.insertCell();
        
// Setzen Sie die Schriftartformatierung zurück.
builder.getFont().setSize(12.0);
builder.getFont().setBold(false);

builder.write("Row 1, Cell 1 Content");
builder.insertCell();
builder.write("Row 1, Cell 2 Content");

builder.insertCell();
builder.getCellFormat().setWidth(200.0);
builder.write("Row 1, Cell 3 Content");
builder.endRow();

builder.insertCell();
builder.getCellFormat().setWidth(100.0);
builder.write("Row 2, Cell 1 Content");

builder.insertCell();
builder.write("Row 2, Cell 2 Content");

builder.insertCell();
builder.getCellFormat().setWidth(200.0);
builder.write("Row 2, Cell 3 Content.");
builder.endRow();

// Beistelltisch.
builder.endTable();

// Dokument speichern.
doc.save("table.docx");

Das Folgende ist der Screenshot der Tabelle, die wir mit dem obigen Codebeispiel erstellt haben.

Tabelle in einem Word Dokument

Erstellen Sie eine Tabelle mit DOM

Das Document Object Model (DOM) ist eine speicherinterne Darstellung eines Word Dokuments, mit der Sie den Inhalt und die Formatierung eines Word Dokuments programmgesteuert lesen, bearbeiten und ändern können. Die folgenden Schritte zeigen, wie Sie mithilfe von DOM eine Tabelle in einem Word Dokument erstellen.

  • Erstellen Sie ein Objekt der Document Klasse, um das Word Dokument zu laden oder zu erstellen.
  • Erstellen Sie ein Objekt der Table Klasse und fügen Sie mithilfe der Methode Document.getFirstSection().getBody().appendChild(Table) eine Tabelle in das Dokument ein.
  • Erstellen Sie ein Objekt der Row Klasse und fügen Sie es mithilfe der Table.appendChild(Row)-Methode in die Tabelle ein.
  • Erstellen Sie ein Objekt der Cell Klasse, legen Sie Formatierungsoptionen fest und fügen Sie der Zelle Text hinzu.
  • Fügen Sie mit der Methode Row.appendChild(Cell) eine Zelle in die Zeile ein.
  • Wiederholen Sie den Vorgang für so viele Zeilen, wie Sie möchten.
  • Speichern Sie das Word Dokument mit der Methode Document.save().

Der folgende Codeausschnitt zeigt, wie man in Java eine Tabelle in einem Word Dokument erstellt.

// Dokument erstellen oder laden.
Document doc = new Document();
        
// Wir beginnen mit der Erstellung des Tabellenobjekts. Beachten Sie, dass wir das Dokumentobjekt übergeben müssen
// an den Konstruktor jedes Knotens. Dies liegt daran, dass jeder Knoten, den wir erstellen, dazugehören muss
// zu einem Dokument.
Table table = new Table(doc);
doc.getFirstSection().getBody().appendChild(table);

// Hier könnten wir ConsiderMinimum aufrufen, um die Zeilen und Zellen für uns zu erstellen. Diese Methode wird verwendet
// um sicherzustellen, dass der angegebene Knoten gültig ist. In diesem Fall sollte eine gültige Tabelle mindestens eine Zeile und eine Zelle haben.

// Stattdessen kümmern wir uns um die Erstellung der Zeile und Tabelle selbst.
// Dies wäre der beste Weg, dies zu tun, wenn wir eine Tabelle innerhalb eines Algorithmus erstellen würden.
Row row = new Row(doc);
row.getRowFormat().setAllowBreakAcrossPages(true);
table.appendChild(row);

// Wir können jetzt alle Einstellungen für die automatische Anpassung anwenden.
table.autoFit(AutoFitBehavior.FIXED_COLUMN_WIDTHS);

Cell cell = new Cell(doc);
cell.getCellFormat().getShading().setBackgroundPatternColor(Color.BLUE);
cell.getCellFormat().setWidth(80.0);
cell.appendChild(new Paragraph(doc));
cell.getFirstParagraph().appendChild(new Run(doc, "Row 1, Cell 1 Text"));

row.appendChild(cell);

// Anschließend wiederholen wir den Vorgang für die anderen Zellen und Zeilen in der Tabelle.
// Wir können die Arbeit auch beschleunigen, indem wir vorhandene Zellen und Zeilen klonen.
row.appendChild(cell.deepClone(false));
row.getLastCell().appendChild(new Paragraph(doc));
row.getLastCell().getFirstParagraph().appendChild(new Run(doc, "Row 1, Cell 2 Text"));

// Dokument speichern.
doc.save("table.docx");

Fügen Sie eine verschachtelte Tabelle in Word Dokumente ein

Es kann auch vorkommen, dass Sie eine verschachtelte Tabelle erstellen müssen, die sich in einer Zelle der übergeordneten Tabelle befindet. Sie können dies tun, ohne einen komplexen Prozess durchlaufen zu müssen. Erstellen Sie zunächst eine übergeordnete Tabelle und rufen Sie dann die Methode DocumentBuilder.moveTo(Cell.getFirstParagraph()) auf, um das Steuerelement in die gewünschte Zelle der übergeordneten Tabelle zu verschieben. Wenn Sie fertig sind, erstellen Sie auf die gleiche Weise eine neue Tabelle.

Der folgende Codeausschnitt zeigt, wie Sie mit Java eine verschachtelte Tabelle in einem Word Dokument erstellen.

// Dokument erstellen oder laden.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Zelle einfügen.
Cell cell = builder.insertCell();
builder.writeln("Outer Table Cell 1");

builder.insertCell();
builder.writeln("Outer Table Cell 2");

// Dieser Aufruf ist wichtig, um innerhalb der ersten Tabelle eine verschachtelte Tabelle zu erstellen. 
// Ohne diesen Aufruf werden die unten eingefügten Zellen an die äußere Tabelle angehängt.
builder.endTable();

// Gehen Sie zur ersten Zelle der äußeren Tabelle.
builder.moveTo(cell.getFirstParagraph());

// Bauen Sie den inneren Tisch.
builder.insertCell();
builder.writeln("Inner Table Cell 1");
builder.insertCell();
builder.writeln("Inner Table Cell 2");
builder.endTable();

// Dokument speichern.
doc.save("table.docx");

Das Folgende ist der Screenshot der verschachtelten Tabelle, die wir oben erstellt haben.

Verschachtelte Tabelle in einem Word Dokument

Verschachtelte Tabelle in einem Word Dokument

Erstellen Sie eine Word-Tabelle aus HTML in Java

Sie können auch mithilfe einer HTML-Zeichenfolge eine Tabelle in einem Word Dokument erstellen. Hier sind die Schritte, die Sie befolgen müssen.

  • Erstellen Sie ein Objekt der Document Klasse, um das Word Dokument zu laden oder zu erstellen.
  • Erstellen Sie ein Objekt der DocumentBuilder Klasse.
  • Fügen Sie mithilfe der Methode DocumentBuilder.insertHtml(String) die HTML-Zeichenfolge der Tabelle in das Dokument ein.
  • Speichern Sie abschließend das Dokument mit der Methode Document.save().

Unten finden Sie den Codeausschnitt zum Generieren einer Word-Tabelle aus einer HTML-Zeichenfolge.

// Dokument erstellen oder laden.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Beachten Sie, dass AutoFitSettings nicht für aus HTML eingefügte Tabellen gilt.
builder.insertHtml("<table>" +
                   "<tr>" +
                   "<td>Row 1, Cell 1</td>" +
                   "<td>Row 1, Cell 2</td>" +
                   "</tr>" +
                   "<tr>" +
                   "<td>Row 2, Cell 2</td>" +
                   "<td>Row 2, Cell 2</td>" +
                   "</tr>" +
                   "</table>");

// Dokument speichern.
doc.save("table.docx");

Holen Sie sich eine kostenlose Lizenz

Sie können eine vorübergehende Lizenz erhalten, um Aspose.Words for Java ohne Evaluierungseinschränkungen zu verwenden.

Abschluss

In diesem Blogbeitrag haben wir untersucht, wie man mit Java Tabellen in Word Dokumenten erstellt. Sie haben gesehen, wie Sie mit Document Builder oder DOM eine Tabelle erstellen, eine verschachtelte Tabelle erstellen und eine Tabelle aus einer HTML-Zeichenfolge erstellen. Durch die Installation der Bibliothek und das Befolgen der Richtlinien können Sie die Tabellenerstellungsfunktion problemlos in Ihre Java-Anwendung integrieren.

Aspose.Words for Java bietet zahlreiche weitere Funktionen und Formatierungsoptionen, sodass Sie problemlos umfangreiche und komplexe Dokumente erstellen können. Um mehr über Aspose.Words for Java zu erfahren, erkunden Sie die umfangreiche Dokumentation und Beispiele. Bei Fragen können Sie uns diese gerne über unser Forum mitteilen.

Siehe auch