using IronPdf;
using System.Data;
using System.Text;
public class DataTableToPDF
{
public static void ConvertToPDF(DataTable table)
{
// Initialize the ChromePdfRenderer
var renderer = new ChromePdfRenderer();
// Convert the DataTable to HTML
string htmlContent = ConvertDataTableToHtml(table);
// Render the HTML to PDF
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
// Save the PDF to a file
pdf.SaveAs("DataTablePDF.pdf");
}
private static string ConvertDataTableToHtml(DataTable dt)
{
var html = new StringBuilder();
// Start HTML document
html.Append("<html><body><table border='1' style='width: 100%; border-collapse: collapse;'>");
// Add table headers
html.Append("<thead><tr>");
foreach (DataColumn column in dt.Columns)
{
html.AppendFormat("<th>{0}</th>", column.ColumnName);
}
html.Append("</tr></thead>");
// Add rows
html.Append("<tbody>");
foreach (DataRow row in dt.Rows)
{
html.Append("<tr>");
foreach (DataColumn column in dt.Columns)
{
html.AppendFormat("<td>{0}</td>", row[column]);
}
html.Append("</tr>");
}
html.Append("</tbody>");
// End table and HTML document
html.Append("</table></body></html>");
return html.ToString();
}
}
C# DataTable (Tutoriel sur le fonctionnement pour les développeurs)
Regan Pun
mai 8, 2023
Partager:
Bienvenue dans ce tutoriel sur les tableaux de données C#. Une Table de Données est une structure de données puissante fournie par le Framework .NET, qui vous permet de stocker, de manipuler et d'interroger des données dans un format tabulaire. Dans ce tutoriel, nous allons explorer les bases des tableaux de données en C#, y compris la création et la modification de Tables de données, l'ajout de colonnes et de lignes, l'interrogation de données, et l'utilisation de DataView pour le filtrage et le tri.
À la fin de ce tutoriel, vous aurez bien compris comment utiliser les Tables de données dans vos applications C#. Commençons!
Création d'une table de données
Pour créer une Table de données en C#, vous devez d'abord importer l'espace de noms System.Data. Cet espace de noms contient diverses classes et méthodes liées à la manipulation de données, notamment la classe DataTable.
using System.Data;
using System.Data;
Imports System.Data
$vbLabelText $csharpLabel
Ensuite, vous pouvez créer une instance de la classe DataTable. La façon la plus simple de procéder est d'utiliser le constructeur par défaut, comme suit :
DataTable dt = new DataTable();
DataTable dt = new DataTable();
Dim dt As New DataTable()
$vbLabelText $csharpLabel
Vous pouvez également créer un DataTable avec un nom spécifique en passant un paramètre de type chaîne au constructeur :
DataTable dt = new DataTable("Employees");
DataTable dt = new DataTable("Employees");
Dim dt As New DataTable("Employees")
$vbLabelText $csharpLabel
Méthodes DataTable
Ajout de colonnes
Une fois que vous avez créé un tableau de données, vous pouvez commencer à y ajouter des colonnes. Pour ajouter une colonne, vous devez d'abord créer une instance de la classe DataColumn et définir ses propriétés, telles que ColumnName et DataType.
Voici un exemple d'ajout de trois colonnes à un tableau de données :
DataColumn idColumn = new DataColumn("Id", typeof(int));
DataColumn nameColumn = new DataColumn("Name", typeof(string));
DataColumn ageColumn = new DataColumn("Age", typeof(int));
dt.Columns.Add(idColumn);
dt.Columns.Add(nameColumn);
dt.Columns.Add(ageColumn);
DataColumn idColumn = new DataColumn("Id", typeof(int));
DataColumn nameColumn = new DataColumn("Name", typeof(string));
DataColumn ageColumn = new DataColumn("Age", typeof(int));
dt.Columns.Add(idColumn);
dt.Columns.Add(nameColumn);
dt.Columns.Add(ageColumn);
Dim idColumn As New DataColumn("Id", GetType(Integer))
Dim nameColumn As New DataColumn("Name", GetType(String))
Dim ageColumn As New DataColumn("Age", GetType(Integer))
dt.Columns.Add(idColumn)
dt.Columns.Add(nameColumn)
dt.Columns.Add(ageColumn)
$vbLabelText $csharpLabel
Vous pouvez ajouter plusieurs colonnes comme la colonne Id dans la table de données.
Ajout de lignes de données
Après avoir défini les colonnes, vous pouvez commencer à ajouter des lignes à la Table de Données. Pour ajouter une ligne, vous devez créer une nouvelle instance de la classe DataRow et remplir ses champs avec les données requises.
Voici un exemple de la façon d'ajouter une nouvelle ligne à une Tableau de Données :
For i As Integer = 1 To 3
Dim row As DataRow = dt.NewRow()
row ("Id") = i
row ("Name") = "Employee " & i
row ("Age") = 20 + i
dt.Rows.Add(row)
Next i
$vbLabelText $csharpLabel
Dans le code ci-dessus, nous avons ajouté trois lignes de données.
Accès aux données
Vous pouvez accéder aux données stockées dans une Table de Données en parcourant ses collections Rows et Columns. Voici un exemple d'affichage du contenu d'une Table de Données dans la console :
foreach (DataRow row in dt.Rows)
{
foreach (DataColumn col in dt.Columns)
{
Console.Write(row [col] + "\t");
}
Console.WriteLine();
}
foreach (DataRow row in dt.Rows)
{
foreach (DataColumn col in dt.Columns)
{
Console.Write(row [col] + "\t");
}
Console.WriteLine();
}
Imports Microsoft.VisualBasic
For Each row As DataRow In dt.Rows
For Each col As DataColumn In dt.Columns
Console.Write(row (col) & vbTab)
Next col
Console.WriteLine()
Next row
$vbLabelText $csharpLabel
Modification des données
Vous pouvez modifier les données d'une Table de données en mettant à jour les valeurs de ses objets DataRow. Voici un exemple de mise à jour de l'âge d'un employé spécifique :
DataRow employeeRow = dt.Rows.Find(1); // Find the row with the specified primary key
if (employeeRow != null)
{
employeeRow ["Age"] = 35;
}
DataRow employeeRow = dt.Rows.Find(1); // Find the row with the specified primary key
if (employeeRow != null)
{
employeeRow ["Age"] = 35;
}
Dim employeeRow As DataRow = dt.Rows.Find(1) ' Find the row with the specified primary key
If employeeRow IsNot Nothing Then
employeeRow ("Age") = 35
End If
$vbLabelText $csharpLabel
Suppression de lignes
Vous pouvez supprimer une ligne d'un tableau de données en appelant la méthode Delete sur un objet DataRow :
DataRow employeeRow = dt.Rows.Find(1);
if (employeeRow != null)
{
employeeRow.Delete();
dt.AcceptChanges(); // Commit the deletion
}
DataRow employeeRow = dt.Rows.Find(1);
if (employeeRow != null)
{
employeeRow.Delete();
dt.AcceptChanges(); // Commit the deletion
}
Dim employeeRow As DataRow = dt.Rows.Find(1)
If employeeRow IsNot Nothing Then
employeeRow.Delete()
dt.AcceptChanges() ' Commit the deletion
End If
$vbLabelText $csharpLabel
Gardez à l'esprit que l'appel à Delete sur un DataRow ne fait que marquer la ligne pour la suppression. Vous devez appeler la méthode AcceptChanges sur la DataTable pour supprimer définitivement les lignes supprimées.
Gestion de plusieurs tableaux
Dans certains cas, il peut être nécessaire de travailler simultanément avec plusieurs tableaux de données. Vous pouvez créer une variable dataset pour stocker plusieurs objets DataTable et gérer les relations entre eux.
Interroger les données avec LINQ
LINQ(Langue Requête intégrée) est une fonctionnalité puissante de C# qui vous permet d'interroger des données à partir de diverses sources de données, y compris des objets Tableau de données. Pour utiliser LINQ avec DataTables, vous devez importer l'espace de noms System.Linq. Voici un exemple de filtrage des employés de plus de 25 ans à l'aide de LINQ :
using System.Linq;
var filteredRows = dt.AsEnumerable().Where(row => row.Field<int>("Age") > 25);
foreach (DataRow row in filteredRows)
{
Console.WriteLine(row ["Name"]);
}
using System.Linq;
var filteredRows = dt.AsEnumerable().Where(row => row.Field<int>("Age") > 25);
foreach (DataRow row in filteredRows)
{
Console.WriteLine(row ["Name"]);
}
Imports System.Linq
Private filteredRows = dt.AsEnumerable().Where(Function(row) row.Field(Of Integer)("Age") > 25)
For Each row As DataRow In filteredRows
Console.WriteLine(row ("Name"))
Next row
$vbLabelText $csharpLabel
DataView : Trier et filtrer
DataView est une autre classe utile fournie par l'espace de noms System.Data qui vous permet de créer une vue triée ou filtrée d'une DataTable. Ceci est particulièrement utile lorsque vous avez besoin d'afficher les données dans un contrôle d'interface utilisateur comme une DataGridView. Nous pouvons aussi faire de la liaison de données pour ajouter des données au contrôle DataGridView à partir d'une Table de données.
Voici un exemple de création d'un DataView permettant de filtrer et de trier les employés en fonction de leur âge :
DataView view = new DataView(dt);
// Filter employees older than 25
view.RowFilter = "Age > 25";
// Sort by age in descending order
view.Sort = "Age DESC";
// Display the filtered and sorted data
foreach (DataRowView rowView in view)
{
DataRow row = rowView.Row;
Console.WriteLine(row ["Name"]);
}
DataView view = new DataView(dt);
// Filter employees older than 25
view.RowFilter = "Age > 25";
// Sort by age in descending order
view.Sort = "Age DESC";
// Display the filtered and sorted data
foreach (DataRowView rowView in view)
{
DataRow row = rowView.Row;
Console.WriteLine(row ["Name"]);
}
Dim view As New DataView(dt)
' Filter employees older than 25
view.RowFilter = "Age > 25"
' Sort by age in descending order
view.Sort = "Age DESC"
' Display the filtered and sorted data
For Each rowView As DataRowView In view
Dim row As DataRow = rowView.Row
Console.WriteLine(row ("Name"))
Next rowView
$vbLabelText $csharpLabel
Exportation d'un tableau de données au format PDF avec IronPDF
IronPDF est un puissantConvertisseur HTML vers PDFla traduction doit rester professionnelle et préserver l'exactitude technique tout en expliquant les caractéristiques et les avantages de ces outils de développement.
using IronPdf;
class Program
{
static void Main(string [] args)
{
var renderer = new ChromePdfRenderer();
// 1. Convert HTML String to PDF
var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");
// 2. Convert HTML File to PDF
var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");
// 3. Convert URL to PDF
var url = "http://ironpdf.com"; // Specify the URL
var pdfFromUrl = renderer.RenderUrlAsPdf(url);
pdfFromUrl.SaveAs("URLToPDF.pdf");
}
}
using IronPdf;
class Program
{
static void Main(string [] args)
{
var renderer = new ChromePdfRenderer();
// 1. Convert HTML String to PDF
var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");
// 2. Convert HTML File to PDF
var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");
// 3. Convert URL to PDF
var url = "http://ironpdf.com"; // Specify the URL
var pdfFromUrl = renderer.RenderUrlAsPdf(url);
pdfFromUrl.SaveAs("URLToPDF.pdf");
}
}
Imports IronPdf
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim renderer = New ChromePdfRenderer()
' 1. Convert HTML String to PDF
Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")
' 2. Convert HTML File to PDF
Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")
' 3. Convert URL to PDF
Dim url = "http://ironpdf.com" ' Specify the URL
Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
pdfFromUrl.SaveAs("URLToPDF.pdf")
End Sub
End Class
$vbLabelText $csharpLabel
Dans cette section, nous allons apprendre à exporter un DataTable vers un document PDF en utilisant IronPDF.
Tout d'abord, vous devez installer le paquet NuGet IronPDF. Ouvrez la console du gestionnaire de paquets dans Visual Studio et exécutez la commande suivante :
Install-Package IronPdf
Une fois le paquet installé, vous pouvez commencer par importer les espaces de noms nécessaires dans votre code :
using IronPdf;
using System.IO;
using IronPdf;
using System.IO;
Imports IronPdf
Imports System.IO
$vbLabelText $csharpLabel
Ensuite, créez une méthode d'aide qui convertit la DataTable en une table HTML, car IronPDF utilise HTML pour rendre le contenu des documents PDF :
public static string ConvertDataTableToHtml(DataTable dt)
{
StringBuilder htmlBuilder = new StringBuilder();
htmlBuilder.AppendLine("<table border='1' cellpadding='5' cellspacing='0'>");
htmlBuilder.AppendLine("<tr>");
// Add column headers
foreach (DataColumn col in dt.Columns)
{
htmlBuilder.AppendFormat("<th>{0}</th>", col.ColumnName);
}
htmlBuilder.AppendLine("</tr>");
// Add rows
foreach (DataRow row in dt.Rows)
{
htmlBuilder.AppendLine("<tr>");
foreach (DataColumn col in dt.Columns)
{
htmlBuilder.AppendFormat("<td>{0}</td>", row [col]);
}
htmlBuilder.AppendLine("</tr>");
}
htmlBuilder.AppendLine("</table>");
return htmlBuilder.ToString();
}
public static string ConvertDataTableToHtml(DataTable dt)
{
StringBuilder htmlBuilder = new StringBuilder();
htmlBuilder.AppendLine("<table border='1' cellpadding='5' cellspacing='0'>");
htmlBuilder.AppendLine("<tr>");
// Add column headers
foreach (DataColumn col in dt.Columns)
{
htmlBuilder.AppendFormat("<th>{0}</th>", col.ColumnName);
}
htmlBuilder.AppendLine("</tr>");
// Add rows
foreach (DataRow row in dt.Rows)
{
htmlBuilder.AppendLine("<tr>");
foreach (DataColumn col in dt.Columns)
{
htmlBuilder.AppendFormat("<td>{0}</td>", row [col]);
}
htmlBuilder.AppendLine("</tr>");
}
htmlBuilder.AppendLine("</table>");
return htmlBuilder.ToString();
}
Public Shared Function ConvertDataTableToHtml(ByVal dt As DataTable) As String
Dim htmlBuilder As New StringBuilder()
htmlBuilder.AppendLine("<table border='1' cellpadding='5' cellspacing='0'>")
htmlBuilder.AppendLine("<tr>")
' Add column headers
For Each col As DataColumn In dt.Columns
htmlBuilder.AppendFormat("<th>{0}</th>", col.ColumnName)
Next col
htmlBuilder.AppendLine("</tr>")
' Add rows
For Each row As DataRow In dt.Rows
htmlBuilder.AppendLine("<tr>")
For Each col As DataColumn In dt.Columns
htmlBuilder.AppendFormat("<td>{0}</td>", row (col))
Next col
htmlBuilder.AppendLine("</tr>")
Next row
htmlBuilder.AppendLine("</table>")
Return htmlBuilder.ToString()
End Function
$vbLabelText $csharpLabel
Vous pouvez maintenant utiliser la fonctionclasse HtmlToPdf fourni par IronPDF pour rendre le tableau HTML et l'enregistrer en tant que fichier PDF :
public static void ExportDataTableToPdf(DataTable dt, string outputPath)
{
// Convert DataTable to HTML
string htmlTable = ConvertDataTableToHtml(dt);
// Create a new HTML to PDF renderer
var renderer = new ChromePdfRenderer();
// Set global styles for the table
renderer.RenderingOptions.CssMediaType = PdfPrintOptions.PdfCssMediaType.Print;
renderer.RenderingOptions.FirstPageNumber = 1;
// Render the HTML table as a PDF document
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlTable);
// Save the PDF file
pdf.SaveAs(outputPath);
}
public static void ExportDataTableToPdf(DataTable dt, string outputPath)
{
// Convert DataTable to HTML
string htmlTable = ConvertDataTableToHtml(dt);
// Create a new HTML to PDF renderer
var renderer = new ChromePdfRenderer();
// Set global styles for the table
renderer.RenderingOptions.CssMediaType = PdfPrintOptions.PdfCssMediaType.Print;
renderer.RenderingOptions.FirstPageNumber = 1;
// Render the HTML table as a PDF document
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlTable);
// Save the PDF file
pdf.SaveAs(outputPath);
}
Public Shared Sub ExportDataTableToPdf(ByVal dt As DataTable, ByVal outputPath As String)
' Convert DataTable to HTML
Dim htmlTable As String = ConvertDataTableToHtml(dt)
' Create a new HTML to PDF renderer
Dim renderer = New ChromePdfRenderer()
' Set global styles for the table
renderer.RenderingOptions.CssMediaType = PdfPrintOptions.PdfCssMediaType.Print
renderer.RenderingOptions.FirstPageNumber = 1
' Render the HTML table as a PDF document
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlTable)
' Save the PDF file
pdf.SaveAs(outputPath)
End Sub
$vbLabelText $csharpLabel
La méthode ExportDataTableToPdf crée un DataTable à partir de la table HTML et l'enregistre dans le fichier PDF.
Enfin, appelez la méthode ExportDataTableToPdf avec les paramètres appropriés pour exporter votre Table de Données :
Dim pdfOutputPath As String = "Employees.pdf"
ExportDataTableToPdf(dt, pdfOutputPath)
$vbLabelText $csharpLabel
Ceci créera un fichier PDF nommé "Employés.pdf" contenant le contenu de votre Tableau de Données dans un format tabulaire.
Conclusion
Dans ce tutoriel, vous avez appris les bases des tableaux de données en C# et comment exporter un Tableau de données vers un document PDF à l'aide de la bibliothèque IronPDF. En incorporant la colonne de la clé primaire, les variables de l'ensemble de données et le DataView pour le filtrage et le tri, vous aurez un meilleur contrôle et une plus grande flexibilité sur vos données. Vous devriez maintenant avoir une bonne compréhension des tables de données et de la manière d'utiliser IronPDF en conjonction avec les tables de données pour créer des rapports PDF d'aspect professionnel dans vos applications C#.
IronPDF offre un service deessai gratuit de ses fonctionnalitésla traduction doit permettre aux utilisateurs d'explorer les possibilités de ces outils avant de s'engager dans un achat.
Regan est diplômé de l'université de Reading, où il a obtenu une licence en ingénierie électronique. Avant de rejoindre Iron Software, il s'était concentré sur une seule tâche. Ce qu'il apprécie le plus chez Iron Software, c'est la diversité des tâches qu'il peut accomplir, qu'il s'agisse d'apporter une valeur ajoutée aux ventes, à l'assistance technique, au développement de produits ou à la commercialisation. Il aime comprendre comment les développeurs utilisent la bibliothèque d'Iron Software et utiliser ces connaissances pour améliorer continuellement la documentation et développer les produits.
< PRÉCÉDENT Installer NuGet Powershell (Tutoriel sur le fonctionnement pour les développeurs)
Des millions d'ingénieurs dans le monde entier lui font confiance
Réservez une démo en direct gratuite
Réservez une démonstration personnelle de 30 minutes.
Pas de contrat, pas de détails de carte, pas d'engagements.
Voici ce à quoi vous pouvez vous attendre :
Une démonstration en direct de notre produit et de ses principales fonctionnalités
Obtenez des recommandations de fonctionnalités spécifiques au projet
Toutes vos questions trouvent réponse pour vous assurer de disposer de toutes les informations dont vous avez besoin. (Aucun engagement de votre part.)
CHOISIR L'HEURE
VOS INFORMATIONS
Réservez votre démo en direct gratuite
Fiable par plus de 2 millions d'ingénieurs dans le monde entier