Passer au contenu du pied de page
UTILISATION D'IRONXL

Comment exporter un tableau HTML vers un fichier Excel en C#

Extraire des données de tableau HTML et les convertir en une feuille Excel est une exigence courante dans les applications commerciales, que ce soit pour la migration de données, la génération de rapports ou les pages Web qui nécessitent une analyse plus approfondie. Cet article fournit des étapes simples pour exporter le contenu d'une datatable de HTML vers le format Excel. Bien que certaines bibliothèques offrent des méthodes intégrées pour convertir des tables HTML, celles-ci comportent souvent des limitations en termes de format de fichier ou de fonctionnalités supportées.

Lorsque vous devez exporter une table HTML au format Excel, comprendre la relation entre la structure des feuilles de calcul Excel et les tables HTML est crucial. Ce guide montre comment transférer efficacement des données de tables HTML vers le format Excel, créant des sorties de feuilles de calcul professionnelles qui maintiennent l'intégrité des données.

IronXL offre une façon plus flexible de convertir le contenu des tables HTML en une feuille de calcul Excel, en combinant ses puissantes capacités de manipulation Excel avec l'analyse HTML pour exporter une table HTML en Excel en C#. Que vous ayez besoin de télécharger des données depuis une URL ou de traiter du contenu d'une base de données, cette solution gère divers scénarios d'entrée.

Pourquoi choisir IronXL pour exporter des données de tableau HTML ?

IronXL excels at creating and manipulating fichiers Excel sans nécessiter l'installation de Microsoft Office, ce qui en fait un choix idéal pour les environnements serveur et les applications multiplateformes. Lorsqu'il est associé au HTML Agility Pack, un analyseur de fichier HTML et de contenu robuste, IronXL devient une solution polyvalente pour convertir toute structure de table HTML en données de feuille Excel. Cette approche fonctionne parfaitement avec les applications .NET et peut gérer efficacement de grands ensembles de données.

Contrairement à des bibliothèques telles que la bibliothèque Excel Syncfusion XlsIO, qui offre une fonction ImportHtmlTable limitée à des formats HTML et des structures de table spécifiques, l'approche d'IronXL donne aux développeurs un contrôle total sur le processus d'analyse et de conversion. Cette flexibilité signifie que les développeurs peuvent gérer des scénarios complexes tels que des tables imbriquées, des formats de données personnalisés et l'extraction de colonnes sélectives que les méthodes intégrées rigides ne peuvent pas accueillir. Les paramètres par défaut fonctionnent bien pour la plupart des cas d'utilisation, mais vous pouvez personnaliser chaque détail.

Additionally, IronXL provides comprehensive Excel features including formula support, cell styling, multiple worksheet management, and various export formats (XLSX, XLS, JSON, and CSV file). Vous pouvez même créer des graphiques, exporter en PDF et gérer les données de champs cachés, en faisant une solution complète pour les besoins d'automatisation Excel au-delà de la simple conversion de table HTML. Que vous travailliez avec un objet de tableau de données ou un fichier de feuille de calcul, IronXL gère la conversion de manière transparente.

Comment installer les bibliothèques requises ?

Tout d'abord, installez à la fois IronXL et HTML Agility Pack via le Gestionnaire de packages NuGet. IronXL offre un essai gratuit pour tester toutes les fonctionnalités :

Install-Package IronXL.Excel
Install-Package HtmlAgilityPack
Install-Package IronXL.Excel
Install-Package HtmlAgilityPack
SHELL

Ces packages NuGet vous permettent de créer, charger et enregistrer des documents Excel programmatiquement. Ensuite, importez les instructions nécessaires dans votre fichier de code C# :

using IronXL;
using HtmlAgilityPack;
using System;
using System.Linq;
using IronXL;
using HtmlAgilityPack;
using System;
using System.Linq;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Ces bibliothèques fonctionnent parfaitement ensemble, avec HTML Agility Pack gérant l'analyse HTML tandis qu'IronXL s'occupe de la création et de la manipulation des fichiers Excel. Cet exemple illustre une approche simple pour convertir des tables HTML au format xlsx.

Comment analyser les données de table HTML avec HTML Agility Pack ?

HTML Agility Pack fournit un moyen simple de naviguer dans les documents HTML à l'aide d'expressions XPath. Le code suivant montre comment extraire des données d'une table HTML et les préparer pour l'exportation :

// Sample HTML table with product data
string htmlContent = @"
<table>
    <thead>
        <tr>
            <th>Product</th>
            <th>Price</th>
            <th>Stock</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>Laptop</td>
            <td>$999</td>
            <td>15</td>
        </tr>
        <tr>
            <td>Mouse</td>
            <td>$25</td>
            <td>50</td>
        </tr>
        <tr>
            <td>Keyboard</td>
            <td>$75</td>
            <td>30</td>
        </tr>
    </tbody>
</table>";
// Load HTML document for parsing
var doc = new HtmlDocument();
doc.LoadHtml(htmlContent);
// Select the HTML table element using XPath
var table = doc.DocumentNode.SelectSingleNode("//table");
// Sample HTML table with product data
string htmlContent = @"
<table>
    <thead>
        <tr>
            <th>Product</th>
            <th>Price</th>
            <th>Stock</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>Laptop</td>
            <td>$999</td>
            <td>15</td>
        </tr>
        <tr>
            <td>Mouse</td>
            <td>$25</td>
            <td>50</td>
        </tr>
        <tr>
            <td>Keyboard</td>
            <td>$75</td>
            <td>30</td>
        </tr>
    </tbody>
</table>";
// Load HTML document for parsing
var doc = new HtmlDocument();
doc.LoadHtml(htmlContent);
// Select the HTML table element using XPath
var table = doc.DocumentNode.SelectSingleNode("//table");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Ce code charge le contenu HTML dans un objet HtmlDocument et utilise XPath pour interroger et sélectionner l'élément de table. La méthode SelectSingleNode renvoie la première table trouvée dans le HTML, facilitant le ciblage de tables spécifiques lorsque plusieurs existent. Chaque ligne de table est traitée pour extraire la valeur de la cellule pour la conversion.

Comment exporter les données analysées vers Excel en utilisant IronXL ?

Avec IronXL, nous pouvons facilement convertir les données de table HTML analysées en une feuille de calcul Excel professionnelle avec un formatage approprié. Le code suivant démontre comment exporter les données avec des paramètres de taille et de famille de police personnalisés :

// Create a new Excel workbook
WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet workSheet = workBook.CreateWorkSheet("Exported Data");
// Extract and write headers
var headers = table.SelectNodes(".//thead/tr/th");
if (headers != null)
{
    for (int col = 0; col < headers.Count; col++)
    {
        workSheet.SetCellValue(0, col, headers[col].InnerText.Trim());
        // Apply header formatting
        var headerCell = workSheet.GetCellAt(0, col);
        headerCell.Style.Font.Bold = true;
        headerCell.Style.BackgroundColor = "#4CAF50";
    }
}
// Extract and write data rows
var rows = table.SelectNodes(".//tbody/tr");
if (rows != null)
{
    for (int row = 0; row < rows.Count; row++)
    {
        var cells = rows[row].SelectNodes("td");
        if (cells != null)
        {
            for (int col = 0; col < cells.Count; col++)
            {
                string cellValue = cells[col].InnerText.Trim();
                workSheet.SetCellValue(row + 1, col, cellValue);
            }
        }
    }
}
// Auto-fit columns for better readability
for (int col = 0; col < headers?.Count; col++)
{
    workSheet.AutoSizeColumn(col);
}
// Save the Excel file
workBook.SaveAs("ExportedTable.xlsx");
// Create a new Excel workbook
WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet workSheet = workBook.CreateWorkSheet("Exported Data");
// Extract and write headers
var headers = table.SelectNodes(".//thead/tr/th");
if (headers != null)
{
    for (int col = 0; col < headers.Count; col++)
    {
        workSheet.SetCellValue(0, col, headers[col].InnerText.Trim());
        // Apply header formatting
        var headerCell = workSheet.GetCellAt(0, col);
        headerCell.Style.Font.Bold = true;
        headerCell.Style.BackgroundColor = "#4CAF50";
    }
}
// Extract and write data rows
var rows = table.SelectNodes(".//tbody/tr");
if (rows != null)
{
    for (int row = 0; row < rows.Count; row++)
    {
        var cells = rows[row].SelectNodes("td");
        if (cells != null)
        {
            for (int col = 0; col < cells.Count; col++)
            {
                string cellValue = cells[col].InnerText.Trim();
                workSheet.SetCellValue(row + 1, col, cellValue);
            }
        }
    }
}
// Auto-fit columns for better readability
for (int col = 0; col < headers?.Count; col++)
{
    workSheet.AutoSizeColumn(col);
}
// Save the Excel file
workBook.SaveAs("ExportedTable.xlsx");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Ce code démontre l'API intuitive d'IronXL pour la manipulation Excel en C#. Tout d'abord, il crée un nouveau WorkBook et WorkSheet. Ensuite, il parcourt les en-têtes de table HTML analysés, les plaçant dans la première rangée tout en appliquant un formatage en gras et une couleur de fond verte. Les lignes de données de la table HTML sont traitées de la même manière, avec le contenu textuel de chaque cellule extrait et placé dans la cellule Excel correspondante. La fonction AutoSizeColumn garantit que tout le contenu est visible, et enfin, le classeur est enregistré en tant que fichier XLSX. Vous pouvez facilement télécharger le fichier généré ou le stocker dans une base de données pour une récupération ultérieure.

Comment exporter une table HTML vers un fichier Excel en C#: Figure 1 - Sortie de données de table analysées par IronXL

Ici, vous pouvez voir la table HTML originale comparée à la sortie ci-dessus :

Comment exporter une table HTML vers un fichier Excel en C#: Figure 2 - Données Excel analysées vs le tableau HTML original

Gestion des scénarios courants

Lorsque vous travaillez avec plusieurs tables, utilisez simplement SelectNodes("//table") pour obtenir toutes les tables et itérez à travers elles, en créant des feuilles de calcul séparées pour chacune. Cet exemple montre comment gérer des scénarios complexes avec de grands ensembles de données :

var tables = doc.DocumentNode.SelectNodes("//table");
foreach (var tbl in tables)
{
    // Create new worksheet for each table
    WorkSheet ws = workBook.CreateWorkSheet($"Table_{tables.IndexOf(tbl) + 1}");
    // Process table as shown above
}
var tables = doc.DocumentNode.SelectNodes("//table");
foreach (var tbl in tables)
{
    // Create new worksheet for each table
    WorkSheet ws = workBook.CreateWorkSheet($"Table_{tables.IndexOf(tbl) + 1}");
    // Process table as shown above
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Pour la gestion des erreurs, encapsulez la logique d'analyse dans des blocs try-catch pour gérer gracieusement le HTML malformé. IronXL gère automatiquement la détection du type de données, convertissant les chaînes numériques en nombres lorsque cela est approprié. Pour des scénarios plus complexes impliquant du contenu dynamique, les développeurs combinent souvent cette approche avec des outils comme Selenium WebDriver pour les tables rendues en JavaScript.

Lorsque vous traitez du contenu depuis une URL ou une requête de base de données pour une analyse plus approfondie, vous devrez peut-être gérer des détails supplémentaires tels que les valeurs de champs cachés ou les exigences de formatage spéciales. Le comportement par défaut fonctionne bien pour les tables standard, mais vous pouvez personnaliser la taille de la police, la famille de polices et d'autres propriétés de style pour chaque première colonne ou toute ligne de table spécifique selon les besoins.

Conclusion

La combinaison d'IronXL et de HTML Agility Pack fournit une solution robuste et flexible pour exporter des tables HTML vers Excel en C#. Cet article a démontré des étapes simples pour convertir le contenu HTML au format xlsx, exporter des informations de datatable et créer des fichiers de feuille de calcul professionnels. Cette approche offre plus de contrôle que les méthodes intégrées rigides, permettant aux développeurs de gérer des structures HTML complexes tout en tirant parti des fonctionnalités Excel complètes d'IronXL.

Que vous construisiez des scrapers Web, migriez des données héritées d'une base de données, automatisiez la génération de rapports avec des graphiques, ou effectuiez des analyses de données sur de grands ensembles de données, cette solution s'adapte aux besoins des entreprises. Les exemples de code fournis montrent comment gérer diverses sources d'entrée, du HTML statique au contenu dynamique récupéré via une URL. Vous pouvez facilement exporter les résultats pour téléchargement ou traitement ultérieur dans votre application .NET.

Prêt à transformer vos données HTML en fichiers de feuilles Excel professionnelles ? Commencez votre essai gratuit d'IronXL dès aujourd'hui et découvrez la flexibilité de la manipulation Excel programmée sans dépendances Office. Pour les déploiements en production, explorez nos options de licence à partir de $799.

Questions Fréquemment Posées

Quel est l'avantage principal d'utiliser IronXL pour convertir des tableaux HTML en Excel ?

IronXL vous permet de convertir facilement des données de tableau HTML en feuilles de calcul Excel avec une approche flexible qui ne nécessite pas Microsoft Office, permettant une compatibilité multiplateforme.

IronXL peut-il gérer des structures de tableaux HTML complexes lors de la conversion en Excel ?

Oui, IronXL est conçu pour gérer des structures de tableaux HTML complexes, garantissant que les données sont exportées avec précision vers Excel tout en maintenant la mise en page et le format d'origine.

Est-il possible d'automatiser la conversion des tableaux HTML en Excel à l'aide d'IronXL en C# ?

Absolument, IronXL prend en charge l'automatisation, permettant aux développeurs de convertir des tableaux HTML en feuilles Excel de manière programmatique dans des applications C#, rationalisant les flux de travail de traitement des données.

La conversion des tableaux HTML en Excel avec IronXL prend-elle en charge différents formats de fichiers ?

IronXL prend en charge divers formats de fichiers Excel, y compris XLSX, XLS et CSV, offrant une flexibilité dans le choix du format de sortie qui convient le mieux aux besoins de votre application.

Ai-je besoin de Microsoft Office pour utiliser IronXL pour la conversion de HTML en Excel ?

Non, IronXL ne nécessite pas l'installation de Microsoft Office, fournissant une solution légère pour convertir des tableaux HTML en Excel sur différentes plateformes.

Quels sont les cas d'utilisation typiques de la conversion des tableaux HTML en Excel à l'aide d'IronXL ?

Les cas d'utilisation courants incluent la migration de données, la génération de rapports et l'analyse ultérieure des données de pages Web, où l'exportation du contenu de tableau HTML vers Excel est nécessaire pour les applications commerciales.

Comment IronXL se compare-t-il à d'autres bibliothèques pour la conversion de HTML en Excel ?

Bien que certaines bibliothèques puissent offrir des méthodes intégrées pour la conversion de HTML en Excel, IronXL se distingue en fournissant des fonctionnalités étendues sans les limitations souvent présentes dans d'autres solutions, telles que le support limité des formats de fichiers.

Jordi Bardia
Ingénieur logiciel
Jordi est le plus compétent en Python, C# et C++, et lorsqu'il ne met pas à profit ses compétences chez Iron Software, il programme des jeux. Partageant les responsabilités des tests de produit, du développement de produit et de la recherche, Jordi apporte une immense valeur à l'amé...
Lire la suite