Utwórz tabelę w programie Word przy użyciu języka C# | Utwórz zagnieżdżone tabele w C#

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

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.

  1. Utwórz obiekt klasy Document.
  2. Utwórz obiekt klasy DocumentBuilder.
  3. Utwórz nową tabelę za pomocą metody StartTable().
  4. Wstaw komórkę za pomocą metody InsertCell().
  5. Wstaw tekst do komórki za pomocą metody Write().
  6. W razie potrzeby powtórz wstawianie komórek i tekstu do komórek.
  7. Zakończ wiersz za pomocą metody EndRow().
  8. Zakończ tabelę za pomocą metody EndTable().
  9. 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ę w programie Word za pomocą narzędzia DocumentBuilder

Utwórz tabelę za pomocą narzędzia DocumentBuilder

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.

  1. Utwórz obiekt klasy Document.
  2. Utwórz nową tabelę za pomocą klasy Table().
  3. Dodaj tabelę do treści dokumentu za pomocą metody AppendChild().
  4. Utwórz obiekt klasy Row i wstaw go do tabeli za pomocą metody Table.AppendChild(Row).
  5. Utwórz obiekt klasy Cell, ustaw opcje formatowania i dodaj tekst do komórki.
  6. Wstaw komórkę do wiersza za pomocą metody Row.AppendChild(Cell).
  7. Następnie powtórz proces dla dowolnej liczby wierszy.
  8. 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 tabelę za pomocą modelu obiektowego dokumentu (DOM)

Utwórz tabelę za pomocą modelu obiektowego dokumentu (DOM)

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.

  1. Utwórz obiekt klasy Document.
  2. Utwórz obiekt klasy DocumentBuilder.
  3. Utwórz tabelę za pomocą metody StartTable() i uzyskaj odwołanie do tabeli w obiekcie.
  4. Wstaw komórkę za pomocą metody InsertCell() i uzyskaj odwołanie do komórki w obiekcie.
  5. Wstaw tekst do komórki za pomocą metody DocumentBuilder.Write().
  6. W razie potrzeby powtórz wstawianie komórek i tekstu do komórek.
  7. Zakończ tabelę po wstawieniu wszystkich wierszy.
  8. Przenieś kontrolę do żądanej komórki za pomocą metody MoveTo(cell.FirstParagraph).
  9. Utwórz kolejną tabelę, wstawiając komórki, a po zakończeniu zakończ tabelę.
  10. 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");
Utwórz zagnieżdżoną tabelę w dokumencie programu Word przy użyciu języka C#

Utwórz zagnieżdżoną tabelę w dokumencie programu Word przy użyciu języka C#

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:

  1. Załaduj istniejący dokument z tabelą, korzystając z klasy Document.
  2. Pobierz tabelę do obiektu za pomocą metody GetChild(NodeType.TABLE, int, boolean).
  3. Klonuj tabelę przy użyciu metody Table.Clone(True).
  4. Wstaw sklonowaną tabelę za pomocą metody Table.ParentNode.InsertAfter().
  5. Wstaw pusty akapit pomiędzy tabelami przy użyciu metody Table.ParentNode.InsertAfter(new Paragraph(Document), Table).
  6. 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");
Klonuj istniejącą tabelę w dokumencie programu Word w języku C#

Klonuj istniejącą tabelę w dokumencie programu Word w języku C#

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:

  1. Utwórz obiekt klasy Document.
  2. Utwórz obiekt klasy DocumentBuilder.
  3. Wstaw ciąg HTML tabeli do dokumentu przy użyciu metody DocumentBuilder.InsertHtml(String).
  4. 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");
Utwórz tabelę w dokumencie programu Word z poziomu HTML

Utwórz tabelę w dokumencie programu Word z poziomu HTML

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.

Zobacz też