Jak dodać tabelę do pliku DOCX w języku C# | IronWord

Jak dodać tabelę do pliku DOCX przy użyciu języka C# i biblioteki IronWord

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronWord pozwala programistom na programistyczne dodawanie tabel do dokumentów Word w C#, tworząc obiekty Table z określonymi wierszami i kolumnami, stylizując je przy użyciu obramowań i kolorów oraz wypełniając komórki treścią przed zapisaniem jako pliki DOCX.

Szybki start: Utwórz i zapisz tabelę za pomocą jednego wywołania

Ten przykład pokazuje, jak utworzyć tabelę w IronWord. Utwórz tabelę z wymiarami, zastosuj style, dodaj treść, wstaw ją do dokumentu i zapisz. W ciągu kilku minut można wygenerować plik DOCX z tabelą o określonym stylu.

  1. Install IronWord with NuGet Package Manager

    PM > Install-Package IronWord
  2. Skopiuj i uruchom ten fragment kodu.

    var table = new IronWord.Models.Table(3,4);
    var doc = new IronWord.WordDocument();
    doc.AddTable(table);
    doc.SaveAs("QuickTable.docx");
  3. Wdrożenie do testowania w środowisku produkcyjnym

    Rozpocznij używanie IronWord w swoim projekcie już dziś z darmową wersją próbną

    arrow pointer

Jak dodać tabelę do dokumentu WORD?

Tabela jest podstawowym elementem dokumentów programu WORD. Najpierw należy utworzyć instancję klasy Table, podając liczbę wierszy i kolumn. Skonfiguruj styl tabeli, w tym kolor tła, cieniowanie, obramowanie, paski zebry i szerokość. Następnie, uzyskaj dostęp do każdej komórki, korzystając z intuicyjnego indeksowania [row, column]. Dodaj tekst, obrazy, kształty, akapity, a nawet tabele do każdej komórki. Na koniec dodaj tabelę do dokumentu WORD.

Tabele w IronWord stanowią elastyczną podstawę do organizowania danych strukturalnych w dokumentach WORD. Niezależnie od tego, czy tworzysz faktury, raporty, czy podsumowania danych, klasa Table oferuje kompleksową kontrolę nad treścią i prezentacją. System indeksowania od zera upraszcza programową iterację komórek, a bogate opcje stylizacji zapewniają profesjonalny wygląd.

PoradyWszystkie pozycje indeksu wierszy i kolumn są indeksowane od zera.

:path=/static-assets/word/content-code-examples/how-to/add-table-add-table.cs
using IronWord;
using IronWord.Models;
using IronWord.Models.Enums;

WordDocument doc = new WordDocument();

// Create table
Table table = new Table(5, 3);

// Configure border style
BorderStyle borderStyle = new BorderStyle();
borderStyle.BorderColor = Color.Black;
borderStyle.BorderValue = BorderValues.Thick;
borderStyle.BorderSize = 5;

// Configure table border
TableBorders tableBorders = new TableBorders()
{
    TopBorder = borderStyle,
    RightBorder = borderStyle,
    BottomBorder = borderStyle,
    LeftBorder = borderStyle,
};

// Apply styling
table.Zebra = new ZebraColor("FFFFFF", "dddddd");
table.Borders = tableBorders;

// Populate table
table[0, 0] = new TableCell(new TextContent("Number"));
table[0, 1] = new TableCell(new TextContent("First Name"));
table[0, 2] = new TableCell(new TextContent("Last Name"));
for (int i = 1; i < table.Rows.Count; i++)
{
    table[i, 0].AddChild(new TextContent($"{i}"));
    table[i, 1].AddChild(new TextContent($"---"));
    table[i, 2].AddChild(new TextContent($"---"));
}

// Add table
doc.AddTable(table);

doc.Save("document.docx");
Imports IronWord
Imports IronWord.Models
Imports IronWord.Models.Enums

Private doc As New WordDocument()

' Create table
Private table As New Table(5, 3)

' Configure border style
Private borderStyle As New BorderStyle()
borderStyle.BorderColor = Color.Black
borderStyle.BorderValue = BorderValues.Thick
borderStyle.BorderSize = 5

' Configure table border
Dim tableBorders As New TableBorders() With {
	.TopBorder = borderStyle,
	.RightBorder = borderStyle,
	.BottomBorder = borderStyle,
	.LeftBorder = borderStyle
}

' Apply styling
table.Zebra = New ZebraColor("FFFFFF", "dddddd")
table.Borders = tableBorders

' Populate table
table(0, 0) = New TableCell(New TextContent("Number"))
table(0, 1) = New TableCell(New TextContent("First Name"))
table(0, 2) = New TableCell(New TextContent("Last Name"))
For i As Integer = 1 To table.Rows.Count - 1
	table(i, 0).AddChild(New TextContent($"{i}"))
	table(i, 1).AddChild(New TextContent($"---"))
	table(i, 2).AddChild(New TextContent($"---"))
Next i

' Add table
doc.AddTable(table)

doc.Save("document.docx")
$vbLabelText   $csharpLabel
Dokument WORD zawierający pustą tabelę 4x3 z kolumnami

Metoda AddChild klasy TableCell akceptuje obiekt ContentElement, który obejmuje akapity, obrazy, kształty i tabele. Umożliwia to tworzenie tabel zagnieżdżonych w złożonych przypadkach użycia.

Podczas pracy z komórkami tabeli IronWord oferuje wiele podejść do zarządzania treścią. Utwórz instancję TableCell z początkową zawartością, używając konstruktora, lub dodaj treść stopniowo, korzystając z metody AddChild. Ta elastyczność pozwala na tworzenie złożonych struktur komórek, które łączą różne typy treści. Na przykład pojedyncza komórka może zawierać akapit nagłówka, po którym następuje obraz i zagnieżdżona tabela zawierająca szczegółowe specyfikacje.

Oto przykład ilustrujący zaawansowane techniki wypełniania komórek:

// Example: Creating cells with mixed content
TableCell complexCell = new TableCell();

// Add a styled paragraph
Paragraph header = new Paragraph();
header.Add(new TextContent("Product Details").Bold().FontSize = 14);
complexCell.AddChild(header);

// Add multiple text elements
complexCell.AddChild(new TextContent("SKU: "));
complexCell.AddChild(new TextContent("PROD-001").Bold());
complexCell.AddChild(new TextContent("\nPrice: $49.99"));

// Cells can also contain lists, images, and more
// This demonstrates the versatility of table cells in IronWord
// Example: Creating cells with mixed content
TableCell complexCell = new TableCell();

// Add a styled paragraph
Paragraph header = new Paragraph();
header.Add(new TextContent("Product Details").Bold().FontSize = 14);
complexCell.AddChild(header);

// Add multiple text elements
complexCell.AddChild(new TextContent("SKU: "));
complexCell.AddChild(new TextContent("PROD-001").Bold());
complexCell.AddChild(new TextContent("\nPrice: $49.99"));

// Cells can also contain lists, images, and more
// This demonstrates the versatility of table cells in IronWord
' Example: Creating cells with mixed content
Dim complexCell As New TableCell()

' Add a styled paragraph
Dim header As New Paragraph()
header.Add(New TextContent("Product Details").Bold().FontSize = 14)
complexCell.AddChild(header)

' Add multiple text elements
complexCell.AddChild(New TextContent("SKU: "))
complexCell.AddChild(New TextContent("PROD-001").Bold())
complexCell.AddChild(New TextContent(vbCrLf & "Price: $49.99"))

' Cells can also contain lists, images, and more
' This demonstrates the versatility of table cells in IronWord
$vbLabelText   $csharpLabel

Jakie opcje stylizacji mogę zastosować do tabel?

IronWord oferuje szerokie możliwości stylizacji tabel, umożliwiając tworzenie atrakcyjnych wizualnie i profesjonalnych dokumentów. Oprócz podstawowych ramek i kolorów, kontroluj wypełnienie komórek, wyrównanie oraz stosuj formatowanie warunkowe poprzez paski zebry. System stylów łączy w sobie moc z intuicyjnym projektem, wykorzystując znane nazwy właściwości i przejrzyste wyliczenia wartości.

Jakie style obramowań są dostępne?

Poznaj wszystkie dostępne opcje wartości obramowania, używając enumeracji BorderValues:

Menu stylów obramowań w programie WORD, zawierające opcje takie jak: pojedyncze, podwójne, potrójne, kropkowane, przerywane, faliste oraz różne kombinacje grubości

Enumeracja BorderValues zapewnia kompleksowe opcje dotyczące estetyki tabel. Od prostych pojedynczych linii po złożone wzory, takie jak fale i kropki, każdy styl służy konkretnym celom projektowym. Dokumenty biznesowe zyskują dzięki profesjonalnym obramowaniom typu Double lub Triple, natomiast dokumenty kreatywne wykorzystują wzory Wave lub DashDot. Właściwość BorderSize współpracuje z BorderValue, aby zapewnić precyzyjną kontrolę nad grubością linii, mierzoną w ósmych części punktu.

Oto praktyczny przykład pokazujący różne konfiguracje ramek:

// Example: Applying different borders to table sections
Table styledTable = new Table(4, 4);

// Create distinct border styles for header and body
BorderStyle headerBorder = new BorderStyle
{
    BorderColor = Color.Navy,
    BorderValue = BorderValues.Double,
    BorderSize = 8
};

BorderStyle bodyBorder = new BorderStyle
{
    BorderColor = Color.Gray,
    BorderValue = BorderValues.Dotted,
    BorderSize = 3
};

// Apply different borders to different parts of the table
// This creates visual hierarchy and improves readability
styledTable.Borders = new TableBorders
{
    TopBorder = headerBorder,
    BottomBorder = headerBorder,
    LeftBorder = bodyBorder,
    RightBorder = bodyBorder,
    InsideHorizontalBorder = bodyBorder,
    InsideVerticalBorder = bodyBorder
};

// Zebra striping for better row distinction
styledTable.Zebra = new ZebraColor("F5F5F5", "FFFFFF");
// Example: Applying different borders to table sections
Table styledTable = new Table(4, 4);

// Create distinct border styles for header and body
BorderStyle headerBorder = new BorderStyle
{
    BorderColor = Color.Navy,
    BorderValue = BorderValues.Double,
    BorderSize = 8
};

BorderStyle bodyBorder = new BorderStyle
{
    BorderColor = Color.Gray,
    BorderValue = BorderValues.Dotted,
    BorderSize = 3
};

// Apply different borders to different parts of the table
// This creates visual hierarchy and improves readability
styledTable.Borders = new TableBorders
{
    TopBorder = headerBorder,
    BottomBorder = headerBorder,
    LeftBorder = bodyBorder,
    RightBorder = bodyBorder,
    InsideHorizontalBorder = bodyBorder,
    InsideVerticalBorder = bodyBorder
};

// Zebra striping for better row distinction
styledTable.Zebra = new ZebraColor("F5F5F5", "FFFFFF");
Imports System.Drawing

' Example: Applying different borders to table sections
Dim styledTable As New Table(4, 4)

' Create distinct border styles for header and body
Dim headerBorder As New BorderStyle With {
    .BorderColor = Color.Navy,
    .BorderValue = BorderValues.Double,
    .BorderSize = 8
}

Dim bodyBorder As New BorderStyle With {
    .BorderColor = Color.Gray,
    .BorderValue = BorderValues.Dotted,
    .BorderSize = 3
}

' Apply different borders to different parts of the table
' This creates visual hierarchy and improves readability
styledTable.Borders = New TableBorders With {
    .TopBorder = headerBorder,
    .BottomBorder = headerBorder,
    .LeftBorder = bodyBorder,
    .RightBorder = bodyBorder,
    .InsideHorizontalBorder = bodyBorder,
    .InsideVerticalBorder = bodyBorder
}

' Zebra striping for better row distinction
styledTable.Zebra = New ZebraColor("F5F5F5", "FFFFFF")
$vbLabelText   $csharpLabel

Właściwości szerokości tabeli i wyrównania zapewniają dodatkową kontrolę nad układem. Ustawiaj tabele na określone szerokości lub wartości procentowe, wyrównuj je w dokumencie i kontroluj interakcję z otaczającą treścią. Opcje stylizacji na poziomie komórek obejmują indywidualne kolory tła, wyrównanie tekstu i regulację odstępów, zapewniając precyzyjną kontrolę nad każdym aspektem wyglądu tabeli.

Te opcje stylizacji umożliwiają tworzenie tabel dostosowanych do wszelkich wymagań projektowych dokumentu, od prostych tabel danych po złożone sprawozdania finansowe z wieloma hierarchiami wizualnymi.

Często Zadawane Pytania

Jak utworzyć tabelę o określonych wymiarach w dokumencie Word?

Dzięki IronWord możesz utworzyć tabelę, instancjonując klasę Table i określając liczbę wierszy i kolumn. Na przykład użyj 'var table = new IronWord.Models.Table(3,4);', aby utworzyć tabelę o 3 wierszach i 4 kolumnach. Następnie dodaj ją do obiektu WordDocument i zapisz jako plik DOCX.

Czy mogę programowo stylizować tabele z obramowaniami i kolorami?

Tak, IronWord pozwala skonfigurować kompleksowy styl tabeli, w tym kolory tła, cieniowanie, obramowania, paskowanie zebra i szerokość. Możesz zastosować te style do obiektu Table przed dodaniem go do dokumentu Word.

Jak uzyskać dostęp do konkretnych komórek tabeli i je wypełnić?

IronWord używa indeksowania zaczynającego się od zera do uzyskiwania dostępu do komórek tabeli. Możesz uzyskać dostęp do komórek, używając intuicyjnej notacji [wiersz, kolumna], a następnie wypełnić je różnymi typami zawartości, w tym tekstem, obrazami, kształtami, akapitami lub nawet zagnieżdżonymi tabelami.

Jakie typy zawartości mogę dodać do komórek tabeli?

Używając klasy TableCell IronWord, możesz dodać wiele typów zawartości przez metodę AddChild, która akceptuje obiekty ContentElement. W tym akapity, obrazy, kształty, a nawet tabele do tworzenia zagnieżdżonych struktur tabel.

Czy możliwe jest tworzenie zagnieżdżonych tabel w komórkach tabeli?

Tak, IronWord obsługuje zagnieżdżone tabele. Ponieważ metoda AddChild akceptuje obiekty ContentElement, w tym tabele, możesz dodać tabelę wewnątrz komórki tabeli, aby obsłużyć złożone wymagania organizacji danych.

Jaki jest najszybszy sposób na wygenerowanie pliku DOCX z tabelą?

Najszybsze podejście w przypadku IronWord to utworzenie obiektu Table z wymiarami, instancjonowanie WordDocument, dodanie tabeli używając AddTable() i zapisanie przy użyciu SaveAs(). Cały ten proces można zakończyć w zaledwie 4 liniach kodu.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 38,043 | Wersja: 2026.4 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package IronWord
uruchom próbkę zobacz, jak twoje dane stają się dokumentem Word.