Tabele w dokumencie programu Word są potężnym narzędziem do organizowania i prezentowania danych w przejrzystym i uporządkowanym formacie. Tabela składa się z wierszy i kolumn, które przecinają się, tworząc komórki zawierające tekst, liczby, obrazy lub inne elementy. W tym artykule dowiemy się, jak programowo utworzyć tabelę w dokumentach Worda przy użyciu języka C#. W tym artykule przedstawiono różne metody tworzenia tabel w pliku DOCX obsługiwane przez próbki kodu.
W tym artykule omówiono następujące tematy:
- Biblioteka C# do tworzenia tabel w dokumentach programu Word
- Utwórz tabelę w dokumencie programu Word
- Utwórz zagnieżdżoną tabelę w dokumentach programu Word
- Sklonuj istniejącą tabelę w dokumencie programu Word
- Utwórz tabelę z HTML
Biblioteka C# do tworzenia tabel w dokumentach programu Word
Do pracy z tabelami w dokumentach Worda wykorzystamy bibliotekę Aspose.Words for .NET. Jest to solidna biblioteka, która umożliwia dynamiczne tworzenie dokumentów programu Word i programowe manipulowanie nimi bezpośrednio w aplikacjach .NET.
Proszę pobierz bibliotekę DLL lub zainstaluj ją z NuGet, używając następującego polecenia:
PM> Install-Package Aspose.Words
Utwórz tabelę w dokumencie programu Word w języku C#
Istnieją dwa sposoby tworzenia tabel w dokumentach programu Word przy użyciu Aspose.Words for .NET:
- Korzystanie z klasy DocumentBuilder
- Korzystanie z DOM (obiektowego modelu dokumentu)
Możesz wybrać metodę, która najlepiej odpowiada Twoim wymaganiom. Przyjrzyjmy się więc szczegółowo każdej z tych metod.
Utwórz tabelę za pomocą narzędzia DocumentBuilder
Klasa DocumentBuilder umożliwia sprawne i bezproblemowe tworzenie dynamicznych dokumentów od podstaw lub modyfikację już istniejących. Dzięki wszechstronnemu zakresowi funkcji możemy bezproblemowo wstawiać różnorodne elementy treści, w tym tekst, pola wyboru, obiekty OLE, akapity, listy, tabele, obrazy i wiele innych.
Wykonaj poniższe kroki, aby utworzyć tabelę w dokumencie programu Word przy użyciu klasy DocumentBuilder.
- Utwórz obiekt klasy Document.
- Utwórz obiekt klasy DocumentBuilder.
- Utwórz nową tabelę za pomocą metody StartTable().
- Wstaw komórkę za pomocą metody InsertCell().
- Wstaw tekst do komórki za pomocą metody Write().
- W razie potrzeby powtórz wstawianie komórek i tekstu do komórek.
- Zakończ wiersz za pomocą metody EndRow().
- Zakończ tabelę za pomocą metody EndTable().
- Na koniec zapisz dokument programu Word przy użyciu metody Save().
Poniższy przykładowy kod pokazuje, jak utworzyć tabelę w dokumencie programu Word przy użyciu języka C#.
// Ten przykład kodu demonstruje, jak utworzyć tabelę w dokumencie programu Word przy użyciu języka C#
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// Zacznij budować stół.
builder.StartTable();
builder.InsertCell();
builder.Write("Row 1, Cell 1 Content.");
// Zbuduj drugą komórkę.
builder.InsertCell();
builder.Write("Row 1, Cell 2 Content.");
// Wywołaj następującą metodę, aby zakończyć wiersz i rozpocząć nowy wiersz.
builder.EndRow();
// Zbuduj pierwszą komórkę drugiego rzędu.
builder.InsertCell();
builder.Write("Row 2, Cell 1 Content");
// Zbuduj drugą komórkę.
builder.InsertCell();
builder.Write("Row 2, Cell 2 Content.");
builder.EndRow();
// Sygnał, że zakończyliśmy budowę stołu.
builder.EndTable();
doc.Save("CreateSimpleTable.docx");
Utwórz tabelę za pomocą modelu obiektowego dokumentu (DOM)
Model obiektowy dokumentu (DOM) to reprezentacja dokumentu programu Word w pamięci. Umożliwia programowy dostęp do odczytu, manipulowania i modyfikowania zawartości i formatowania dokumentu Word.
Wykonaj poniższe kroki, aby utworzyć tabelę w dokumencie programu Word przy użyciu modelu DOM.
- Utwórz obiekt klasy Document.
- Utwórz nową tabelę za pomocą klasy Table().
- Dodaj tabelę do treści dokumentu za pomocą metody AppendChild().
- Utwórz obiekt klasy Row i wstaw go do tabeli za pomocą metody Table.AppendChild(Row).
- Utwórz obiekt klasy Cell, ustaw opcje formatowania i dodaj tekst do komórki.
- Wstaw komórkę do wiersza za pomocą metody Row.AppendChild(Cell).
- Następnie powtórz proces dla dowolnej liczby wierszy.
- Na koniec zapisz dokument programu Word przy użyciu metody Save().
Poniższy przykładowy kod pokazuje, jak utworzyć tabelę w dokumencie programu Word przy użyciu języka C#.
// Ten przykład kodu demonstruje, jak utworzyć tabelę w dokumencie programu Word przy użyciu modelu DOM w języku C#
Document doc = new Document();
// Zaczynamy od utworzenia obiektu tabeli. Pamiętaj, że musimy przekazać obiekt document
// do konstruktora każdego węzła. Dzieje się tak, ponieważ każdy węzeł, który tworzymy, musi należeć
// do jakiegoś dokumentu.
Table table = new Table(doc);
doc.FirstSection.Body.AppendChild(table);
// Tutaj moglibyśmy wywołać SureMinimum, aby utworzyć dla nas wiersze i komórki. Ta metoda jest stosowana
// aby upewnić się, że określony węzeł jest prawidłowy. W takim przypadku prawidłowa tabela powinna zawierać co najmniej jeden wiersz i jedną komórkę.
// Zamiast tego zajmiemy się tworzeniem wiersza i tabeli samodzielnie.
// Byłby to najlepszy sposób, aby to zrobić, gdybyśmy tworzyli tabelę wewnątrz algorytmu.
Row row = new Row(doc);
row.RowFormat.AllowBreakAcrossPages = true;
table.AppendChild(row);
// Możemy teraz zastosować dowolne ustawienia automatycznego dopasowania.
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"));
// Dołącz komórkę
row.AppendChild(cell);
// Następnie powtórzylibyśmy proces dla pozostałych komórek i wierszy tabeli.
// Możemy także przyspieszyć działanie klonując istniejące komórki i wiersze.
row.AppendChild(cell.Clone(false));
row.LastCell.AppendChild(new Paragraph(doc));
row.LastCell.FirstParagraph.AppendChild(new Run(doc, "Row 1, Cell 2 Text"));
// Zapisz dokument
doc.Save("InsertTableDirectly.docx");
Utwórz zagnieżdżoną tabelę w dokumencie programu Word przy użyciu języka C#
Możemy także utworzyć nową tabelę w komórce tabeli. Poniżej przedstawiono kroki tworzenia zagnieżdżonej tabeli w dokumencie programu Word.
- Utwórz obiekt klasy Document.
- Utwórz obiekt klasy DocumentBuilder.
- Utwórz tabelę za pomocą metody StartTable() i uzyskaj odwołanie do tabeli w obiekcie.
- Wstaw komórkę za pomocą metody InsertCell() i uzyskaj odwołanie do komórki w obiekcie.
- Wstaw tekst do komórki za pomocą metody DocumentBuilder.Write().
- W razie potrzeby powtórz wstawianie komórek i tekstu do komórek.
- Zakończ tabelę po wstawieniu wszystkich wierszy.
- Przenieś kontrolę do żądanej komórki za pomocą metody MoveTo(cell.FirstParagraph).
- Utwórz kolejną tabelę, wstawiając komórki, a po zakończeniu zakończ tabelę.
- Na koniec zapisz dokument programu Word przy użyciu metody Save().
Poniższy przykładowy kod pokazuje, jak utworzyć zagnieżdżoną tabelę w dokumencie programu Word przy użyciu języka C#.
// Ten przykład kodu demonstruje, jak utworzyć zagnieżdżoną tabelę w dokumencie programu Word przy użyciu języka 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");
// To wywołanie jest ważne, aby utworzyć zagnieżdżoną tabelę w pierwszej tabeli.
// Bez tego wywołania komórki wstawione poniżej zostaną dołączone do tabeli zewnętrznej.
builder.EndTable();
// Przejdź do pierwszej komórki tabeli zewnętrznej.
builder.MoveTo(cell.FirstParagraph);
// Zbuduj wewnętrzny stół.
builder.InsertCell();
builder.Writeln("Inner Table Cell 1");
builder.InsertCell();
builder.Writeln("Inner Table Cell 2");
builder.EndTable();
// Zapisz dokument
doc.Save("NestedTable.docx");
Klonuj istniejącą tabelę w dokumencie programu Word w języku C#
Możemy sklonować istniejącą tabelę w dokumencie programu Word, wykonując poniższe czynności:
- Załaduj istniejący dokument z tabelą, korzystając z klasy Document.
- Pobierz tabelę do obiektu za pomocą metody GetChild(NodeType.TABLE, int, boolean).
- Klonuj tabelę przy użyciu metody Table.Clone(True).
- Wstaw sklonowaną tabelę za pomocą metody Table.ParentNode.InsertAfter().
- Wstaw pusty akapit pomiędzy tabelami przy użyciu metody Table.ParentNode.InsertAfter(new Paragraph(Document), Table).
- Na koniec zapisz dokument programu Word przy użyciu metody Save().
Poniższy przykładowy kod pokazuje, jak sklonować tabelę w dokumencie programu Word przy użyciu języka C#.
// Ten przykład kodu demonstruje, jak sklonować istniejącą tabelę w dokumencie programu Word przy użyciu języka C#
Document doc = new Document("Tables.docx");
Table table = (Table) doc.GetChild(NodeType.Table, 0, true);
// Sklonuj tabelę i wstaw ją do dokumentu po oryginale.
Table tableClone = (Table) table.Clone(true);
table.ParentNode.InsertAfter(tableClone, table);
// Wstaw pusty akapit pomiędzy dwiema tabelami,
// w przeciwnym razie po zapisaniu zostaną połączone w jeden. Ma to związek z walidacją dokumentu.
table.ParentNode.InsertAfter(new Paragraph(doc), table);
doc.Save("CloneCompleteTable.docx");
Utwórz tabelę w dokumencie programu Word z poziomu HTML
Możemy również utworzyć tabelę w dokumencie programu Word przy użyciu ciągu HTML, wykonując poniższe czynności:
- Utwórz obiekt klasy Document.
- Utwórz obiekt klasy DocumentBuilder.
- Wstaw ciąg HTML tabeli do dokumentu przy użyciu metody DocumentBuilder.InsertHtml(String).
- Na koniec zapisz dokument za pomocą metody Document.Save().
Poniższy przykładowy kod pokazuje, jak wstawić tabelę HTML do dokumentu programu Word przy użyciu języka C#.
// Ten przykład kodu demonstruje, jak wstawić tabelę HTML do dokumentu programu Word przy użyciu języka C#
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// Należy pamiętać, że ustawienie AutoFitSettings nie ma zastosowania do tabel wstawionych z formatu 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");
Uzyskaj bezpłatną licencję API
Możesz uzyskać licencję tymczasową na używanie Aspose.Words for .NET bez ograniczeń ewaluacyjnych.
Wniosek
W tym artykule dowiedzieliśmy się, jak tworzyć tabele w dokumentach Worda przy użyciu języka C#. Zbadaliśmy różne metody programowego tworzenia tabel przy użyciu języka C#. Widzieliśmy także, jak dynamicznie tworzyć zagnieżdżone tabele lub klonować istniejące tabele w dokumentach programu Word. Poza tym możesz dowiedzieć się więcej i poznać wiele innych funkcji biblioteki, korzystając z dokumentacji. W przypadku jakichkolwiek niejasności prosimy o kontakt na naszym bezpłatnym forum pomocy technicznej.