Extraire les données de tableaux avec une API .NET

Aspose.HTML for .NET charge un fichier dans un HTMLDocument afin d’interroger son DOM. Sélectionnez le <table> requis, parcourez ses lignes, lisez les cellules <th> et <td>, puis transmettez les valeurs à un fichier JSON, CSV, une base de données ou un autre traitement.


Extraire un tableau HTML vers JSON en C#

L’exemple sélectionne le premier tableau de input.html, conserve l’ordre des cellules et écrit les valeurs dans table-data.json. Utilisez un sélecteur plus précis si le document contient plusieurs tableaux.

Code C# pour extraire les données d’un tableau HTML

using Aspose.Html;
using Aspose.Html.Dom;
using System;
using System.Collections.Generic;
using System.IO;
using System.Text.Json;

string inputPath = "input.html";
string outputPath = "table-data.json";

using HTMLDocument document = new HTMLDocument(inputPath);

// Select the table to extract
Element table = document.QuerySelector("table");
if (table == null)
{
    throw new InvalidOperationException("The HTML document does not contain a table.");
}

List<List<string>> tableData = new List<List<string>>();

// Read header and data cells in document order
foreach (Element row in table.QuerySelectorAll("tr"))
{
    List<string> values = new List<string>();

    foreach (Element cell in row.QuerySelectorAll("th, td"))
    {
        values.Add(cell.TextContent.Trim());
    }

    if (values.Count > 0)
    {
        tableData.Add(values);
    }
}

JsonSerializerOptions options = new JsonSerializerOptions
{
    WriteIndented = true
};

string json = JsonSerializer.Serialize(tableData, options);
File.WriteAllText(outputPath, json);

Étapes pour extraire les données d’un tableau HTML

  1. Chargez la source avec un constructeur HTMLDocument .
  2. Sélectionnez le tableau avec QuerySelector() , de préférence via un ID ou une classe s’il y en a plusieurs.
  3. Utilisez QuerySelectorAll() pour collecter les lignes, puis les cellules <th> et <td>.
  4. Lisez et normalisez le TextContent en conservant l’ordre des lignes et colonnes.
  5. Sérialisez les valeurs avec JsonSerializer et enregistrez le fichier JSON.

Options et limites de l’extraction des données

  • Sélectionner le bon tableau. Utilisez #id, .class, main table ou un autre sélecteur stable. Consultez Sélecteur CSS et Requête XPath .
  • Traiter un ou plusieurs tableaux. Remplacez QuerySelector() par QuerySelectorAll("table") pour tous les parcourir.
  • Contrôler les lignes. tr lit les lignes de <thead>, <tbody> et <tfoot>. Affinez le sélecteur pour exclure ou séparer une section.
  • Gérer les tableaux imbriqués. Un sélecteur descendant peut atteindre leurs lignes. Utilisez une structure plus précise pour obtenir des jeux de données distincts.
  • Choisir la sortie. L’API DOM fournit les valeurs; les API .NET peuvent ensuite produire JSON, CSV, texte ou des enregistrements applicatifs.

Documentation sur l’extraction des données de tableaux

Le guide Extraire des tableaux HTML en C# présente les fichiers locaux, URL, en-têtes, liens et sorties CSV ou texte. Extraction de données couvre aussi le DOM, les sélecteurs CSS et XPath.


Installer Aspose.HTML for .NET

Installez Aspose.HTML for .NET depuis NuGet avec l’interface CLI .NET :

dotnet add package Aspose.HTML

Vous pouvez également utiliser l’interface du gestionnaire de packages NuGet ou exécuter Install-Package Aspose.HTML dans la console du gestionnaire de packages. Consultez le guide d’installation pour la configuration, ou demandez une licence temporaire afin d’évaluer l’API sans limitations.


Questions fréquentes sur l’extraction des données

1. Comment inclure les en-têtes dans les données extraites?

Lisez les éléments <th> et <td> de chaque ligne. Le sélecteur th, td conserve les en-têtes à leur position d’origine dans le résultat JSON.

2. Les cellules vides sont-elles conservées dans JSON?

Oui. Chaque cellule produit une chaîne; après TextContent.Trim(), une cellule vide devient une chaîne vide et conserve sa position.

3. Puis-je enregistrer les données au format CSV ou Excel?

Le DOM renvoie des valeurs sans imposer de format. Écrivez-les en CSV avec les API .NET, sérialisez-les en JSON ou transmettez-les à un composant de feuille de calcul pour créer un classeur Excel.

4. Le code développe-t-il automatiquement rowspan et colspan?

Non. Ces attributs restent accessibles, mais une liste plate ne représente pas les positions occupées. Ajoutez une normalisation pour obtenir un jeu rectangulaire.

5. Puis-je extraire des liens ou du balisage plutôt que du texte?

Oui. TextContent renvoie le texte. Utilisez InnerHTML pour le balisage ou sélectionnez les éléments <a> pour lire leur texte et leur attribut href.

Opérations associées aux tableaux HTML

Créez ou modifiez des tableaux et extrayez leur balisage avec Aspose.HTML for .NET.