Vytvořte tabulku ve Wordu pomocí C# | Vytvářejte vnořené tabulky v C#

Tabulky v dokumentu aplikace Word jsou mocným nástrojem pro organizaci a prezentaci dat v jasném a strukturovaném formátu. Tabulka se skládá z řádků a sloupců, které se protínají a tvoří buňky, které mohou obsahovat text, čísla, obrázky nebo jiné prvky. V tomto článku se naučíme, jak vytvořit tabulku v dokumentech Wordu programově pomocí C#. Tento článek ukazuje různé metody vytváření tabulek v souboru DOCX podporovaném ukázkami kódu.

Tento článek se zabývá následujícími tématy:

Knihovna C# pro vytváření tabulek v dokumentech aplikace Word

Pro práci s tabulkami v dokumentech aplikace Word použijeme knihovnu Aspose.Words for .NET. Je to robustní knihovna, která vám umožňuje dynamicky vytvářet a manipulovat s dokumenty Wordu programově přímo v aplikacích .NET.

Prosím stáhněte si DLL nebo ji nainstalujte z NuGet pomocí následujícího příkazu:

PM> Install-Package Aspose.Words

Vytvořte tabulku v dokumentu aplikace Word v C#

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

  • Pomocí třídy DocumentBuilder
  • Použití modelu 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 umožňuje efektivní a snadné vytváření dynamických dokumentů od začátku nebo úpravy stávajících. Díky rozsáhlé řadě funkcí můžeme bez problémů vkládat různé prvky obsahu, včetně textu, zaškrtávacích políček, objektů OLE, odstavců, seznamů, tabulek, obrázků a mnoha dalších.

Chcete-li vytvořit tabulku v dokumentu aplikace Word pomocí třídy DocumentBuilder, postupujte podle následujících kroků.

  1. Vytvořte objekt třídy Document.
  2. Vytvořte objekt třídy DocumentBuilder.
  3. Vytvořte novou tabulku pomocí metody StartTable().
  4. Vložte buňku pomocí metody InsertCell().
  5. Vložte text do buňky pomocí metody Write().
  6. Podle potřeby opakujte vkládání buněk a textu do buněk.
  7. Ukončete řádek pomocí metody EndRow().
  8. Ukončete tabulku pomocí metody EndTable().
  9. Nakonec uložte dokument aplikace Word pomocí metody Save().

Následující ukázka kódu ukazuje, jak vytvořit tabulku v dokumentu aplikace Word pomocí jazyka C#.

// Tento příklad kódu ukazuje, jak vytvořit tabulku v dokumentu aplikace Word pomocí C#
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Začněte stavět stůl.
builder.StartTable();
builder.InsertCell();
builder.Write("Row 1, Cell 1 Content.");

// Sestavte druhou buňku.
builder.InsertCell();
builder.Write("Row 1, Cell 2 Content.");

// Zavoláním následující metody ukončíte řádek a začnete nový.
builder.EndRow();

// Vytvořte první buňku druhého řádku.
builder.InsertCell();
builder.Write("Row 2, Cell 1 Content");

// Sestavte druhou buňku.
builder.InsertCell();
builder.Write("Row 2, Cell 2 Content.");
builder.EndRow();

// Signál, že jsme dokončili stavbu stolu.
builder.EndTable();

doc.Save("CreateSimpleTable.docx");
Vytvořte tabulku v aplikaci Word pomocí DocumentBuilder

Vytvořte tabulku pomocí DocumentBuilder

Vytvoření tabulky pomocí Document Object Model (DOM)

Objektový model dokumentu (DOM) je reprezentace dokumentu aplikace Word v paměti. Umožňuje programový přístup ke čtení, manipulaci a úpravě obsahu a formátování dokumentu aplikace Word.

Chcete-li vytvořit tabulku v dokumentu aplikace Word pomocí DOM, postupujte podle následujících kroků.

  1. Vytvořte objekt třídy Document.
  2. Vytvořte novou tabulku pomocí třídy Table().
  3. Přidejte tabulku do těla dokumentu pomocí metody AppendChild().
  4. Vytvořte objekt třídy Row a vložte jej do tabulky pomocí metody Table.AppendChild(Row).
  5. Vytvořte objekt třídy Cell, nastavte možnosti formátování a přidejte do buňky text.
  6. Buňku vložte do řádku pomocí metody Row.AppendChild(Cell).
  7. Poté proces opakujte pro tolik řádků, kolik chcete.
  8. Nakonec uložte dokument aplikace Word pomocí metody Save().

Následující ukázka kódu ukazuje, jak vytvořit tabulku v dokumentu aplikace Word pomocí jazyka C#.

// Tento příklad kódu ukazuje, jak vytvořit tabulku v dokumentu aplikace Word pomocí DOM v C#
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.FirstSection.Body.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 vytvoříme řádek a tabulku sami.
// To by byl nejlepší způsob, jak toho dosáhnout, pokud bychom vytvářeli tabulku uvnitř algoritmu.
Row row = new Row(doc);
row.RowFormat.AllowBreakAcrossPages = true;
table.AppendChild(row);

// Nyní můžeme použít libovolné nastavení automatického přizpůsobení.
table.AutoFit(AutoFitBehavior.FixedColumnWidths);

Cell cell = new Cell(doc);
cell.CellFormat.Shading.BackgroundPatternColor = Color.LightBlue;
cell.CellFormat.Width = 80;
cell.AppendChild(new Paragraph(doc));
cell.FirstParagraph.AppendChild(new Run(doc, "Row 1, Cell 1 Text"));

// Připojte buňku
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.Clone(false));
row.LastCell.AppendChild(new Paragraph(doc));
row.LastCell.FirstParagraph.AppendChild(new Run(doc, "Row 1, Cell 2 Text"));

// Uložte dokument
doc.Save("InsertTableDirectly.docx");
Vytvoření tabulky pomocí Document Object Model (DOM)

Vytvoření tabulky pomocí Document Object Model (DOM)

Vytvořte vnořenou tabulku v dokumentu Word pomocí C#

Můžeme také vytvořit novou tabulku v buňce tabulky. Následují kroky k vytvoření vnořené tabulky v dokumentu aplikace Word.

  1. Vytvořte objekt třídy Document.
  2. Vytvořte objekt třídy DocumentBuilder.
  3. Vytvořte tabulku pomocí metody StartTable() a získejte odkaz na tabulku v objektu.
  4. Vložte buňku pomocí metody InsertCell() a získejte odkaz na buňku v objektu.
  5. Vložte text do buňky pomocí metody DocumentBuilder.Write().
  6. Podle potřeby opakujte vkládání buněk a textu do buněk.
  7. Po vložení všech řádků tabulku ukončete.
  8. Přesuňte ovládací prvek do požadované buňky pomocí metody MoveTo(cell.FirstParagraph).
  9. Vytvořte další tabulku vložením buněk a po dokončení tabulku ukončete.
  10. Nakonec uložte dokument aplikace Word pomocí metody Save().

Následující ukázka kódu ukazuje, jak vytvořit vnořenou tabulku v dokumentu aplikace Word pomocí jazyka C#.

// Tento příklad kódu ukazuje, jak vytvořit vnořenou tabulku v dokumentu aplikace Word pomocí C#
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

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.FirstParagraph);

// Sestavte vnitřní stůl.
builder.InsertCell();
builder.Writeln("Inner Table Cell 1");
builder.InsertCell();
builder.Writeln("Inner Table Cell 2");
builder.EndTable();

// Uložte dokument
doc.Save("NestedTable.docx");
Vytvořte vnořenou tabulku v dokumentu aplikace Word pomocí C#

Vytvořte vnořenou tabulku v dokumentu Word pomocí C#

Klonování existující tabulky v dokumentu aplikace Word v C#

Existující tabulku v dokumentu aplikace Word můžeme naklonovat podle následujících kroků:

  1. Načtěte existující dokument s tabulkou pomocí třídy Document.
  2. Získejte tabulku v objektu pomocí metody GetChild(NodeType.TABLE, int, boolean).
  3. Naklonujte tabulku pomocí metody Table.Clone(True).
  4. Vložte klonovanou tabulku pomocí metody Table.ParentNode.InsertAfter().
  5. Vložte prázdný odstavec mezi tabulky pomocí metody Table.ParentNode.InsertAfter(new Odsek(Document), Table).
  6. Nakonec uložte dokument aplikace Word pomocí metody Save().

Následující ukázka kódu ukazuje, jak klonovat tabulku v dokumentu aplikace Word pomocí jazyka C#.

// Tento příklad kódu ukazuje, jak klonovat existující tabulku v dokumentu aplikace Word pomocí C#
Document doc = new Document("Tables.docx");

Table table = (Table) doc.GetChild(NodeType.Table, 0, true);

// Naklonujte tabulku a vložte ji do dokumentu za originál.
Table tableClone = (Table) table.Clone(true);
table.ParentNode.InsertAfter(tableClone, table);

// Vložte prázdný odstavec mezi dvě tabulky,
// jinak budou po uložení spojeny do jednoho, což souvisí s ověřením dokumentu.
table.ParentNode.InsertAfter(new Paragraph(doc), table);
            
doc.Save("CloneCompleteTable.docx");
Klonování existující tabulky v dokumentu aplikace Word v C#

Klonování existující tabulky v dokumentu aplikace Word v C#

Vytvořte tabulku v dokumentu aplikace Word z HTML

Můžeme také vytvořit tabulku v dokumentu aplikace Word pomocí řetězce HTML podle následujících kroků:

  1. Vytvořte objekt třídy Document.
  2. Vytvořte objekt třídy DocumentBuilder.
  3. Vložte řetězec HTML tabulky do dokumentu pomocí metody DocumentBuilder.InsertHtml(String).
  4. Nakonec dokument uložte pomocí metody Document.Save().

Následující ukázka kódu ukazuje, jak vložit tabulku HTML do dokumentu aplikace Word pomocí jazyka C#.

// Tento příklad kódu ukazuje, jak vložit tabulku HTML do dokumentu aplikace Word pomocí jazyka C#
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>");

doc.Save("InsertTableFromHtml.docx");
Vytvořte tabulku v dokumentu aplikace Word z HTML

Vytvořte tabulku v dokumentu aplikace Word z HTML

Získejte bezplatnou licenci API

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

Závěr

V tomto článku jsme se naučili vytvářet tabulky v dokumentech Word pomocí C#. Prozkoumali jsme různé metody vytváření tabulek programově pomocí C#. Také jsme viděli, jak dynamicky vytvářet vnořené tabulky nebo klonovat existující tabulky v dokumentech aplikace Word. Kromě toho se můžete dozvědět více a prozkoumat řadu dalších funkcí knihovny pomocí dokumentace. V případě jakýchkoliv nejasností nás neváhejte kontaktovat na našem bezplatném fóru podpory.

Viz také