Jak dodać tabelę do pliku DOCX przy użyciu języka C# i biblioteki IronWord
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.
-
Install IronWord with NuGet Package Manager
PM > Install-Package IronWord -
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"); -
Wdrożenie do testowania w środowisku produkcyjnym
Rozpocznij używanie IronWord w swoim projekcie już dziś z darmową wersją próbną
Minimalny proces (5 kroków)
- Pobierz bibliotekę C# do dodawania tabel do plików DOCX
- Wypełnij komórki treścią i połącz komórki w wiersze
- Utwórz tabelę, dodając do niej wiersze
- Utwórz nowy dokument WORDa z tabelą i dołącz do niego tabelę
- Wyeksportuj gotowy dokument WORD
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.
: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")
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
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:
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")
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.

