Inhaltsverzeichnis
Über NuGet installiert
PM> Install-Package Spire.PDF
verwandte Links
Eine Tabelle bietet schnellen und effizienten Zugriff auf optisch ansprechende Daten, die in Zeilen und Spalten angezeigt werden. Wenn Daten in einer Tabelle dargestellt werden, haben sie eine größere Wirkung als wenn sie nur in Worten verwendet werden, und ermöglichen es den Lesern, die Beziehungen zwischen ihnen leicht zu vergleichen und zu verstehen. In diesem Artikel erfahren Sie, wie das geht Erstellen Sie eine Tabelle im PDF-Format in C# und VB.NET mit Spire.PDF for .NET.
Spire.PDF for .NET bietet die Klassen PdfTable und PdfGrid für die Arbeit mit den Tabellen in einem PDF-Dokument. Die PdfTable-Klasse wird zum schnellen Erstellen einfacher, regulärer Tabellen ohne allzu große Formatierung verwendet, während die PdfGrid-Klasse zum Erstellen komplexerer Tabellen verwendet wird.
In der folgenden Tabelle sind die Unterschiede zwischen diesen beiden Klassen aufgeführt.
PdfTable | PdfGrid | |
Formatierung | ||
Reihe | Kann über Ereignisse eingestellt werden. Keine API-Unterstützung. | Kann über die API eingestellt werden. |
Spalte | Kann über die API (StringFormat) festgelegt werden. | Kann über die API (StringFormat) festgelegt werden. |
Zelle | Kann über Ereignisse eingestellt werden. Keine API-Unterstützung. | Kann über die API eingestellt werden. |
Andere | ||
Spaltenspanne | Nicht unterstützt. | Kann über die API eingestellt werden. |
Zeilenspanne | Kann über Ereignisse eingestellt werden. Keine API-Unterstützung. | Kann über die API eingestellt werden. |
Geschachtelter Tisch | Kann über Ereignisse eingestellt werden. Keine API-Unterstützung. | Kann über die API eingestellt werden. |
Veranstaltungen | BeginCellLayout, EndCellLayout, BeginRowLayout, EndRowLayout, BeginPageLayout, EndPageLayout. | BeginPageLayout, EndPageLayout. |
In den folgenden Abschnitten wird gezeigt, wie Sie mit der PdfTable-Klasse bzw. der PdfGrid-Klasse eine Tabelle in PDF erstellen.
- Erstellen Sie eine Tabelle mit der PdfTable-Klasse
- Erstellen Sie eine Tabelle mit der Klasse PdfGrid
Installieren Sie Spire.PDF for .NET
Zunächst müssen Sie die im Spire.PDF for.NET-Paket enthaltenen DLL-Dateien als Referenzen in Ihrem .NET-Projekt hinzufügen. Die DLL-Dateien können entweder über diesen Link heruntergeladen oder über NuGet installiert werden.
PM> Install-Package Spire.PDF
Erstellen Sie eine Tabelle mit der PdfTable-Klasse
Im Folgenden finden Sie die Schritte zum Erstellen einer Tabelle mithilfe der PdfTable-Klasse.
- Erstellen Sie ein PdfDocument-Objekt.
- Fügen Sie mit der Methode PdfDocument.Pages.Add() eine Seite hinzu.
- Erstellen Sie ein Pdftable-Objekt.
- Legen Sie den Tabellenstil über die Eigenschaft PdfTable.Style fest.
- Fügen Sie Daten über die Eigenschaft PdfTable.DataSource in die Tabelle ein.
- Legen Sie die Zeilenhöhe und die Zeilenfarbe über das BeginRowLayout-Ereignis fest.
- Zeichnen Sie eine Tabelle auf der PDF-Seite mit der Methode PdfTable.Draw().
- Speichern Sie das Dokument mit der Methode PdfDocument.SaveToFile() in einer PDF-Datei.
- C#
- VB.NET
using System; using System.Data; using System.Drawing; using Spire.Pdf; using Spire.Pdf.Graphics; using Spire.Pdf.Tables; namespace CreateTable { class Program { static void Main(string[] args) { //Create a PdfDocument object PdfDocument doc = new PdfDocument(); //Add a page PdfPageBase page = doc.Pages.Add(PdfPageSize.A4, new PdfMargins(40)); //Create a PdfTable object PdfTable table = new PdfTable(); //Set font for header and the rest cells table.Style.DefaultStyle.Font = new PdfTrueTypeFont(new Font("Times New Roman", 12f, FontStyle.Regular), true); table.Style.HeaderStyle.Font = new PdfTrueTypeFont(new Font("Times New Roman", 12f, FontStyle.Bold), true); //Crate a DataTable DataTable dataTable = new DataTable(); dataTable.Columns.Add("ID"); dataTable.Columns.Add("Name"); dataTable.Columns.Add("Department"); dataTable.Columns.Add("Position"); dataTable.Columns.Add("Level"); dataTable.Rows.Add(new string[] { "1", "David", "IT", "Manager", "1" }); dataTable.Rows.Add(new string[] { "3", "Julia", "HR", "Manager", "1" }); dataTable.Rows.Add(new string[] { "4", "Sophie", "Marketing", "Manager", "1" }); dataTable.Rows.Add(new string[] { "7", "Wickey", "Marketing", "Sales Rep", "2" }); dataTable.Rows.Add(new string[] { "9", "Wayne", "HR", "HR Supervisor", "2" }); dataTable.Rows.Add(new string[] { "11", "Mia", "Dev", "Developer", "2" }); //Set the datatable as the data source of table table.DataSource = dataTable; //Show header(the header is hidden by default) table.Style.ShowHeader = true; //Set font color and backgroud color of header row table.Style.HeaderStyle.BackgroundBrush = PdfBrushes.Gray; table.Style.HeaderStyle.TextBrush = PdfBrushes.White; //Set text alignment in header row table.Style.HeaderStyle.StringFormat = new PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Middle); //Set text alignment in other cells for (int i = 0; i < table.Columns.Count; i++) { table.Columns[i].StringFormat = new PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Middle); } //Register with BeginRowLayout event table.BeginRowLayout += Table_BeginRowLayout; //Draw table on the page table.Draw(page, new PointF(0, 30)); //Save the document to a PDF file doc.SaveToFile("PdfTable.pdf"); } //Event handler private static void Table_BeginRowLayout(object sender, BeginRowLayoutEventArgs args) { //Set row height args.MinimalHeight = 20f; //Alternate row color if (args.RowIndex < 0) { return; } if (args.RowIndex % 2 == 1) { args.CellStyle.BackgroundBrush = PdfBrushes.LightGray; } else { args.CellStyle.BackgroundBrush = PdfBrushes.White; } } } }
Erstellen Sie eine Tabelle mit der Klasse PdfGrid
Nachfolgend finden Sie die Schritte zum Erstellen einer Tabelle mit der PdfGrid-Klasse.
- Erstellen Sie ein PdfDocument-Objekt.
- Fügen Sie mit der Methode PdfDocument.Pages.Add() eine Seite hinzu.
- Erstellen Sie ein PDFGrid-Objekt.
- Legen Sie den Tabellenstil über die Eigenschaft PdfGrid.Style fest.
- Fügen Sie der Tabelle mithilfe der Methode PdfGrid.Rows.Add() Zeilen hinzu.
- Fügen Sie Daten über die Eigenschaft PdfGridRow.Cells[index].Value in bestimmte Zellen ein.
- Erweitern Sie Zellen über Spalten oder Zeilen mithilfe der Eigenschaft PdfGridRow.RowSpan oder PdfGridRow.ColumnSpan.
- Legen Sie die Formatierung einer bestimmten Zelle über die Eigenschaften PdfGridRow.Cells[index].StringFormat und PdfGridRow.Cells[index].Style fest.
- Zeichnen Sie eine Tabelle auf der PDF-Seite mit der Methode PdfGrid.Draw().
- Speichern Sie das Dokument mit der Methode PdfDocument.SaveToFile() in einer PDF-Datei.
- C#
- VB.NET
using Spire.Pdf; using Spire.Pdf.Graphics; using Spire.Pdf.Grid; using System.Drawing; namespace CreateGrid { class Program { static void Main(string[] args) { //Create a PdfDocument object PdfDocument doc = new PdfDocument(); //Add a page PdfPageBase page = doc.Pages.Add(PdfPageSize.A4,new PdfMargins(40)); //Create a PdfGrid PdfGrid grid = new PdfGrid(); //Set cell padding grid.Style.CellPadding = new PdfPaddings(1, 1, 1, 1); //Set font grid.Style.Font = new PdfTrueTypeFont(new Font("Times New Roman", 13f, FontStyle.Regular), true); //Add rows PdfGridRow row1 = grid.Rows.Add(); PdfGridRow row2 = grid.Rows.Add(); PdfGridRow row3 = grid.Rows.Add(); PdfGridRow row4 = grid.Rows.Add(); grid.Columns.Add(4); //Set column width foreach (PdfGridColumn col in grid.Columns) { col.Width = 110f; } //Write data into specific cells row1.Cells[0].Value = "Order and Payment Status"; row2.Cells[0].Value = "Order number"; row2.Cells[1].Value = "Date"; row2.Cells[2].Value = "Customer"; row2.Cells[3].Value = "Paid or not"; row3.Cells[0].Value = "00223"; row3.Cells[1].Value = "2022/06/02"; row3.Cells[2].Value = "Brick Lane Realty"; row3.Cells[3].Value = "Yes"; row4.Cells[0].Value = "00224"; row4.Cells[1].Value = "2022/06/03"; row4.Cells[3].Value = "No"; //Span cell across columns row1.Cells[0].ColumnSpan = 4; //Span cell across rows row3.Cells[2].RowSpan = 2; //Set text alignment of specific cells row1.Cells[0].StringFormat = new PdfStringFormat(PdfTextAlignment.Center); row3.Cells[2].StringFormat = new PdfStringFormat(PdfTextAlignment.Left, PdfVerticalAlignment.Middle); //Set background color of specific cells row1.Cells[0].Style.BackgroundBrush = PdfBrushes.Orange; row4.Cells[3].Style.BackgroundBrush = PdfBrushes.LightGray; //Format cell border PdfBorders borders = new PdfBorders(); borders.All = new PdfPen(Color.Orange, 0.8f); foreach (PdfGridRow pgr in grid.Rows) { foreach (PdfGridCell pgc in pgr.Cells) { pgc.Style.Borders = borders; } } //Draw table on the page grid.Draw(page, new PointF(0, 30)); //Save the document to a PDF file doc.SaveToFile("PdfGrid.pdf"); } } }
Beantragen Sie eine temporäre Lizenz
Wenn Sie die Bewertungsmeldung aus den generierten Dokumenten entfernen oder die Funktionseinschränkungen beseitigen möchten, wenden Sie sich bitte an uns Fordern Sie eine 30-Tage-Testlizenz an für sich selbst.