Passer au contenu du pied de page
UTILISATION D'IRONXL

C# Exportation d'un tableau HTML vers un fichier Excel avec IronXL.Excel

L'extraction de données de tableaux HTML et leur conversion en une feuille Excel est une exigence courante dans les applications professionnelles, 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 poussée. 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 un tableau HTML vers Excel, il est essentiel de comprendre la relation entre les structures des feuilles de calcul Excel et les tableaux HTML. Ce guide montre comment transférer efficacement les données des tableaux HTML vers le format Excel, en créant des sorties de feuilles de calcul Excel professionnelles qui préservent l'intégrité des données.

IronXL offre un moyen plus flexible de convertir le contenu d'un tableau HTML en une feuille de calcul Excel, en combinant ses puissantes capacités de manipulation Excel avec l'analyse syntaxique HTML pour exporter un tableau HTML vers Excel en C#. Qu'il s'agisse de télécharger des données à partir d'une URL ou de traiter du contenu à partir d'une base de données, cette solution prend en charge différents scénarios de saisie.

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

IronXL excelle dans la création et la manipulation de fichiers Excel sans nécessiter l'installation de Microsoft Office, ce qui le rend idéal pour les environnements de serveur et les applications multiplateformes. Associé à HTML Agility Pack, un robuste analyseur de fichiers et de contenus HTML, IronXL devient une solution polyvalente pour convertir n'importe quelle structure de tableau 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.

En outre, IronXL offre des fonctionnalités Excel complètes, notamment prise en charge des formules, style de cellule, gestion de plusieurs feuilles de calcul, et divers formats d'exportation (XLSX, XLS, JSON, et fichier CSV). Vous pouvez même créer des graphiques, exporter au format PDF et gérer les données des champs cachés, ce qui en fait une solution complète pour les besoins d'automatisation d'Excel au-delà de la simple conversion de tableaux HTML. Qu'il s'agisse d'un objet datable ou d'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
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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 présente une approche simple pour convertir des tableaux 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 tableau. La méthode SelectSingleNode renvoie le premier tableau trouvé dans le code HTML, ce qui permet de cibler facilement des tableaux spécifiques lorsqu'il en existe plusieurs. Chaque ligne du tableau est traitée pour extraire la valeur de la cellule à convertir.

Comment exporter des 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 livre de travail et feuille de travail. 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 permet de s'assurer que tout le contenu est visible et, enfin, le classeur est enregistré sous la forme d'un fichier XLSX. Vous pouvez facilement télécharger le fichier généré ou le stocker dans une base de données pour le retrouver ultérieurement.

C# Export HTML Table to Excel File with IronXL : Image 1 - IronXL parsed table data output (Exportation d'un tableau HTML vers un fichier Excel avec IronXL)

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

C# Export HTML Table to Excel File with IronXL : Image 2 - Parsed Excel data vs. the original HTML table (en anglais)

Gestion des scénarios courants

Lorsque vous travaillez avec plusieurs tableaux, utilisez simplement SelectNodes("//table") pour obtenir tous les tableaux et les parcourir, en créant des feuilles de travail distinctes pour chacun d'entre eux. 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 le contenu d'une URL ou d'une requête de base de données en vue d'une analyse plus approfondie, vous pouvez être amené à traiter des détails supplémentaires tels que des valeurs de champs cachés ou des exigences de formatage particulières. 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 du contenu HTML au format XLSX, exporter des informations datables et créer des fichiers de feuilles 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.

Qu'il s'agisse de créer des scanners web, de migrer des données anciennes à partir d'une base de données, d'automatiser la génération de rapports avec des graphiques ou d'effectuer des analyses de données sur de grands ensembles de données, cette solution s'adapte aux besoins de l'entreprise. Les exemples de code fournis montrent comment traiter différentes 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 Excel professionnels ? 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, découvrez nos options de licence à partir de 749 $.

Questions Fréquemment Posées

Quel est l'objectif principal de la conversion des tableaux HTML en Excel dans les applications professionnelles ?

L'objectif principal est de faciliter la migration des données, la génération de rapports ou l'analyse approfondie des données des pages web en transformant les données des tableaux HTML dans un format facilement gérable et analysable dans Excel.

Quelle bibliothèque le guide suggère-t-il pour convertir des tableaux HTML en Excel en C# ?

Le guide suggère d'utiliser IronXL pour convertir des tableaux HTML en Excel dans C#, car il offre une approche flexible sans avoir besoin de Microsoft Office.

Pourquoi certaines bibliothèques ne sont-elles pas adaptées à la conversion de tableaux HTML en Excel ?

Certaines bibliothèques peuvent ne pas convenir parce qu'elles sont limitées en termes de formats de fichiers ou qu'elles manquent de fonctions d'assistance, ce qui peut limiter leur efficacité dans la gestion de divers besoins de conversion de données.

L'utilisation d'IronXL.Excel pour l'exportation de tableaux HTML vers Excel nécessite-t-elle l'utilisation de Microsoft Office ?

Non, Microsoft Office n'est pas nécessaire pour utiliser IronXL. Il fonctionne sur plusieurs plateformes et fournit une solution flexible pour exporter des tableaux HTML vers Excel.

IronXL peut-il prendre en charge les conversions multiplateformes de tableaux HTML vers Excel ?

Oui, IronXL peut gérer des conversions multiplateformes de tableaux HTML vers Excel, ce qui en fait un outil polyvalent pour les développeurs travaillant dans différents environnements.

Quels sont les cas d'utilisation courants pour la conversion de tableaux HTML en Excel ?

Les cas d'utilisation courants comprennent la migration de données, la génération de rapports et l'analyse de données de pages web dans un format plus structuré et plus accessible.

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