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
- Vytvořte tabulku v dokumentu aplikace Word
- Vytvořte vnořenou tabulku v dokumentech aplikace Word
- Klonování existující tabulky v dokumentu aplikace Word
- Vytvořte tabulku z HTML
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ů.
- Vytvořte objekt třídy Document.
- Vytvořte objekt třídy DocumentBuilder.
- Vytvořte novou tabulku pomocí metody StartTable().
- Vložte buňku pomocí metody InsertCell().
- Vložte text do buňky pomocí metody Write().
- Podle potřeby opakujte vkládání buněk a textu do buněk.
- Ukončete řádek pomocí metody EndRow().
- Ukončete tabulku pomocí metody EndTable().
- 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ř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ů.
- Vytvořte objekt třídy Document.
- Vytvořte novou tabulku pomocí třídy Table().
- Přidejte tabulku do těla dokumentu pomocí metody AppendChild().
- 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.
- Buňku vložte do řádku pomocí metody Row.AppendChild(Cell).
- Poté proces opakujte pro tolik řádků, kolik chcete.
- 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ř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.
- Vytvořte objekt třídy Document.
- Vytvořte objekt třídy DocumentBuilder.
- Vytvořte tabulku pomocí metody StartTable() a získejte odkaz na tabulku v objektu.
- Vložte buňku pomocí metody InsertCell() a získejte odkaz na buňku v objektu.
- Vložte text do buňky pomocí metody DocumentBuilder.Write().
- Podle potřeby opakujte vkládání buněk a textu do buněk.
- Po vložení všech řádků tabulku ukončete.
- Přesuňte ovládací prvek do požadované buňky pomocí metody MoveTo(cell.FirstParagraph).
- Vytvořte další tabulku vložením buněk a po dokončení tabulku ukončete.
- 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");
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ů:
- Načtěte existující dokument s tabulkou pomocí třídy Document.
- Získejte tabulku v objektu pomocí metody GetChild(NodeType.TABLE, int, boolean).
- Naklonujte tabulku pomocí metody Table.Clone(True).
- Vložte klonovanou tabulku pomocí metody Table.ParentNode.InsertAfter().
- Vložte prázdný odstavec mezi tabulky pomocí metody Table.ParentNode.InsertAfter(new Odsek(Document), Table).
- 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");
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ů:
- Vytvořte objekt třídy Document.
- Vytvořte objekt třídy DocumentBuilder.
- Vložte řetězec HTML tabulky do dokumentu pomocí metody DocumentBuilder.InsertHtml(String).
- 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");
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.