vytvářet tabulky v dokumentech aplikace Word pomocí Java

Microsoft Word je populární aplikace pro zpracování textu, která se používá k vytváření různých typů dokumentů. Tyto dokumenty mohou obsahovat několik typů prvků včetně textu, obrázků, tabulek a grafů. Pokud jde o automatizaci vytváření dokumentů a manipulace s nimi v Java, možná budete potřebovat snadné řešení pro vytváření tabulek v dokumentech aplikace Word. V tomto příspěvku na blogu tedy prozkoumáme, jak vytvořit tabulky v dokumentech aplikace Word v aplikaci Java.

Java knihovna pro vytváření tabulek v dokumentech aplikace Word

Aspose.Words for Java je API, které umožňuje vývojářům Java pracovat s dokumenty Microsoft Word programově. Poskytuje širokou škálu funkcí pro vytváření, úpravy a manipulaci s dokumenty Word, což z něj činí cenný nástroj pro automatizaci generování a zpracování dokumentů. Tuto knihovnu použijeme pro vkládání tabulek do dokumentu aplikace Word.

Knihovnu si můžete stáhnout nebo ji nainstalovat pomocí následujících konfigurací Maven.

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

Vytvořte tabulku v dokumentu aplikace Word v Java

Existují dva způsoby, jak vytvořit tabulky v dokumentech aplikace Word pomocí Aspose.Words for Java:

  • Použití DocumentBuilder
  • Použití DOM (Document Object Model)

Můžete si vybrat metodu, která nejlépe vyhovuje vašim požadavkům. Pojďme si tedy každou z těchto metod podrobně prozkoumat.

Vytvořte tabulku pomocí DocumentBuilder

Třída DocumentBuilder vám poskytuje rychlý a snadný způsob vytváření dynamických dokumentů od začátku nebo zpracování existujících dokumentů. Nabízí řadu funkcí pro vkládání různých prvků obsahu, jako je text, zaškrtávací políčka, objekty OLE, odstavce, seznamy, tabulky, obrázky a další.

Následují kroky, které používají třídu DocumentBuilder k vytvoření tabulky v dokumentu aplikace Word v jazyce Java.

  • Vytvořte objekt třídy Document pro načtení nebo vytvoření dokumentu aplikace Word.
  • Vytvořte objekt třídy DocumentBuilder.
  • Spusťte tabulku pomocí metody DocumentBuilder.startTable().
  • Vložte buňku pomocí metody DocumentBuilder.insertCell().
  • (Volitelné) Použijte na buňku formátování, jako je písmo a zarovnání.
  • Vložte text do buňky pomocí metody DocumentBuilder.write().
  • Podle potřeby opakujte vkládání buněk a textu do buněk.
  • Ukončete řádek, když dokončíte vkládání buněk pomocí metody DocumentBuilder.endRow().
  • Ukončit tabulku, když vložíte všechny řádky pomocí metody DocumentBuilder.endTable().
  • Uložte dokument aplikace Word pomocí metody Document.save().

Následující fragment kódu ukazuje, jak vytvořit tabulku v dokumentu aplikace Word pomocí Java.

// Vytvořte nebo načtěte dokument.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Vytvořte novou tabulku a vložte buňku.
Table table = builder.startTable();
builder.insertCell();

// Formátování na šířku tabulky musí být použito poté, co je v tabulce přítomen alespoň jeden řádek.
table.setLeftIndent(20.0);

// Nastavte výšku a definujte pravidlo výšky pro řádek záhlaví.
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");

// Šířku této buňky nemusíme zadávat, protože je zděděna z předchozí buňky.
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);

// Resetujte výšku a definujte jiné pravidlo výšky pro tělo stolu.
builder.getRowFormat().setHeight(30.0);
builder.getRowFormat().setHeightRule(HeightRule.AUTO);
builder.insertCell();
        
// Obnovit formátování písma.
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();

// Stolek.
builder.endTable();

// Uložit dokument.
doc.save("table.docx");

Následuje snímek obrazovky tabulky, kterou jsme vytvořili pomocí výše uvedeného ukázkového kódu.

Tabulka v dokumentu aplikace Word

Vytvořte tabulku pomocí DOM

Document Object Model (DOM) je reprezentace dokumentu aplikace Word v paměti, která umožňuje programově číst, manipulovat a upravovat obsah a formátování dokumentu aplikace Word. Následující kroky ukazují, jak vytvořit tabulku v dokumentu aplikace Word pomocí modelu DOM.

  • Vytvořte objekt třídy Document pro načtení nebo vytvoření dokumentu aplikace Word.
  • Vytvořte objekt třídy Table a vložte tabulku do dokumentu pomocí metody Document.getFirstSection().getBody().appendChild(Table).
  • Vytvořte objekt třídy Row a vložte jej do tabulky pomocí metody Table.appendChild(Row).
  • Vytvořte objekt třídy Cell, nastavte možnosti formátování a přidejte do buňky text.
  • Vložte buňku do řádku pomocí metody Row.appendChild(Cell).
  • Opakujte proces pro tolik řádků, kolik chcete.
  • Uložte dokument aplikace Word pomocí metody Document.save().

Následující fragment kódu ukazuje, jak vytvořit tabulku v dokumentu aplikace Word v jazyce Java.

// Vytvořte nebo načtěte dokument.
Document doc = new Document();
        
// Začneme vytvořením objektu tabulky. Všimněte si, že musíme předat objekt dokumentu
// ke konstruktoru každého uzlu. Je to proto, že každý uzel, který vytvoříme, musí patřit
// k nějakému dokumentu.
Table table = new Table(doc);
doc.getFirstSection().getBody().appendChild(table);

// Zde bychom mohli zavolat SecureMinimum, aby za nás vytvořili řádky a buňky. Tato metoda se používá
// abyste se ujistili, že zadaný uzel je platný. V tomto případě by platná tabulka měla mít alespoň jeden řádek a jednu buňku.

// Místo toho si s vytvořením řádku a tabulky poradíme sami.
// To by byl nejlepší způsob, jak toho dosáhnout, pokud bychom vytvářeli tabulku uvnitř algoritmu.
Row row = new Row(doc);
row.getRowFormat().setAllowBreakAcrossPages(true);
table.appendChild(row);

// Nyní můžeme použít libovolné nastavení automatického přizpůsobení.
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);

// Poté bychom postup opakovali pro další buňky a řádky v tabulce.
// Věci můžeme urychlit také klonováním existujících buněk a řádků.
row.appendChild(cell.deepClone(false));
row.getLastCell().appendChild(new Paragraph(doc));
row.getLastCell().getFirstParagraph().appendChild(new Run(doc, "Row 1, Cell 2 Text"));

// Uložit dokument.
doc.save("table.docx");

Vložit vnořenou tabulku do dokumentů aplikace Word

Může také nastat případ, kdy potřebujete vytvořit vnořenou tabulku, která se nachází uvnitř buňky nadřazené tabulky. Můžete to udělat, aniž byste museli projít složitým procesem. Nejprve vytvořte nadřazenou tabulku a poté zavolejte metodu DocumentBuilder.moveTo(Cell.getFirstParagraph()), aby se ovládací prvek přesunul do požadované buňky nadřazené tabulky. Po dokončení vytvořte stejným způsobem novou tabulku.

Následující fragment kódu ukazuje, jak vytvořit vnořenou tabulku v dokumentu aplikace Word pomocí Java.

// Vytvořte nebo načtěte dokument.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Vložit buňku.
Cell cell = builder.insertCell();
builder.writeln("Outer Table Cell 1");

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

// Toto volání je důležité pro vytvoření vnořené tabulky v první tabulce. 
// Bez tohoto volání budou buňky vložené níže připojeny k vnější tabulce.
builder.endTable();

// Přesuňte se do první buňky vnější tabulky.
builder.moveTo(cell.getFirstParagraph());

// Sestavte vnitřní stůl.
builder.insertCell();
builder.writeln("Inner Table Cell 1");
builder.insertCell();
builder.writeln("Inner Table Cell 2");
builder.endTable();

// Uložit dokument.
doc.save("table.docx");

Následuje snímek obrazovky vnořené tabulky, kterou jsme vytvořili výše.

Nested Table in a Word Document

Vytvořte tabulku Word z HTML v Java

Můžete také vytvořit tabulku v dokumentu aplikace Word pomocí řetězce HTML a zde jsou kroky, které je třeba dodržet.

  • Vytvořte objekt třídy Document pro načtení nebo vytvoření dokumentu aplikace Word.
  • Vytvořte objekt třídy DocumentBuilder.
  • Vložte HTML řetězec tabulky do dokumentu pomocí metody DocumentBuilder.insertHtml(String).
  • Nakonec dokument uložte pomocí metody Document.save().

Níže je uveden fragment kódu pro vygenerování tabulky aplikace Word z řetězce HTML.

// Vytvořte nebo načtěte dokument.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Všimněte si, že AutoFitSettings se nevztahuje na tabulky vložené z HTML.
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>");

// Uložit dokument.
doc.save("table.docx");

Získejte bezplatnou licenci

Můžete získat dočasnou licenci k používání Aspose.Words for Java bez omezení hodnocení.

Závěr

V tomto příspěvku na blogu jsme prozkoumali, jak vytvářet tabulky v dokumentech aplikace Word pomocí Java. Viděli jste, jak vytvořit tabulku pomocí nástroje pro tvorbu dokumentů nebo DOM, vytvořit vnořenou tabulku a vytvořit tabulku z řetězce HTML. Instalací knihovny a dodržováním pokynů můžete snadno integrovat funkci vytváření tabulek do vaší Java aplikace.

Aspose.Words for Java poskytuje řadu dalších funkcí a možností formátování, které vám umožní snadno vytvářet bohaté a složité dokumenty. Chcete-li se dozvědět více o Aspose.Words for Java, prozkoumejte jeho rozsáhlou dokumentaci a příklady. V případě jakýchkoliv dotazů nás neváhejte kontaktovat prostřednictvím našeho fóra.

Viz také