robbiblubber.org
FR
Projets
Collection.NETMIT

Data.Util.NET.

Robbiblubber.Data.Util.NET

Préparer les données pour la suite : exporter des collections typées en CSV ou Excel, générer des instructions SQL INSERT à partir de résultats de requêtes et lire les services OData page par page. Quatre bibliothèques à intégrer individuellement dans vos applications .NET.

.NET 8.NET 10

Bibliothèques et extensions

4

Les bibliothèques sont disponibles sous forme de paquets NuGet distincts. Installez les briques utiles à votre projet.

Bibliothèque

Robbiblubber.Data.Util.CSV

Export CSV pour IEnumerable<T> : définir les colonnes et en-têtes, sélectionner les valeurs par fonctions et adapter le format de sortie.

Pour les applications .NETFrameworks cibles: net8.0 / net10.0

Ce qu’elle contient

  • CsvExport<T> traite vos types de données ; DataField<T> définit l’ordre des colonnes, les en-têtes et les valeurs.
  • Séparateurs de champs et décimaux, guillemets, fins de ligne et encodage sont configurables.
  • CsvOptions.GERMAN propose le point-virgule et la virgule décimale ; la ligne d’en-tête est facultative.
  • Sortie vers un fichier, flux, TextWriter ou chaîne, avec méthodes synchrones et asynchrones.
Un petit point de départ C#
using Robbiblubber.Data.Util.CSV;

CsvExport<Product> export = new(
    fieldDefinition:
    [
        new CsvExport.DataField<Product>("Name", p => p.Name),
        new CsvExport.DataField<Product>("Price", p => p.Price)
    ],
    csvOptions: CsvOptions.GERMAN.Clone());

await export.WriteToFileAsync("products.csv", [new Product("Notebook", 4.50m)]);

record Product(string Name, decimal Price);

Deux colonnes explicites, une ligne d’en-tête et un format numérique allemand. Personnaliser une copie des options.

Installation
dotnet add package Robbiblubber.Data.Util.CSV
Bibliothèque

Robbiblubber.Data.Util.Excel

Créer des fichiers Excel à partir de données typées : définir les colonnes, la feuille et les formats de cellules, puis exporter en XLSX ou vers un flux.

Utilise ClosedXML ; aucune installation d’Excel requiseFrameworks cibles: net8.0 / net10.0

Ce qu’elle contient

  • ExcelExport<T> et DataField<T> associent vos types aux en-têtes et fonctions de valeurs.
  • Configurer le nom de feuille, les largeurs et les en-têtes facultatifs ; écrire nombres, dates et autres valeurs dans des cellules adaptées.
  • Couleurs, bordures, gras et italique pour en-têtes et cellules ; formats distincts pour les premières et dernières lignes de données.
  • CustomizeCell permet des adaptations ClosedXML par cellule ; sortie vers fichiers et flux.
Un petit point de départ C#
using Robbiblubber.Data.Util.Excel;

ExcelExport<Product> export = new(
    fieldDefinition:
    [
        new ExcelExport.DataField<Product>("Name", p => p.Name),
        new ExcelExport.DataField<Product>("Price", p => p.Price)
    ],
    columnWidths: [28d, 14d], worksheetName: "Products");

export.WriteToFile("products.xlsx", [new Product("Notebook", 4.50m)]);

record Product(string Name, decimal Price);

Crée une feuille à deux colonnes. Fournir une largeur pour chaque colonne définie.

Installation
dotnet add package Robbiblubber.Data.Util.Excel
Bibliothèque

Robbiblubber.Data.Util.Export

Exporter les résultats d’une requête SQL sous forme d’instructions INSERT. SqlExport utilise une connexion ADO.NET existante et génère un script pour la table cible indiquée.

IDbConnection ouverte et fournisseur ADO.NET appropriéFrameworks cibles: net8.0 / net10.0

Ce qu’elle contient

  • Votre requête SELECT détermine les lignes et colonnes exportées.
  • Chaque ligne devient une instruction INSERT reprenant les noms des colonnes du résultat.
  • Prend en charge les apostrophes dans les chaînes, NULL, les dates/heures et les décimaux indépendants de la culture.
  • Statements fournit les instructions séparées, ToString() le script complet. Vérifier la syntaxe SQL pour le système cible.
Un petit point de départ C#
using System.Data;
using Robbiblubber.Data.Util.Export;

static string ExportProducts(IDbConnection connection)
{
    using SqlExport export = new(connection, "Products_Copy",
        "SELECT Id, Name, Price FROM Products");
    export.Execute();
    return export.ToString();
}

La connexion doit déjà être ouverte. Execute() lit la source et génère le script sans exécuter les INSERT.

Installation
dotnet add package Robbiblubber.Data.Util.Export
Bibliothèque

Robbiblubber.Data.Util.OData

Lire les données JSON OData avec un HttpClient existant : récupérer les pages ou parcourir les enregistrements avec await foreach, en suivant les liens de continuation OData.

Point d’accès JSON OData avec tableau value ; configurer HttpClient pour le serviceFrameworks cibles: net8.0 / net10.0

Ce qu’elle contient

  • NextPageAsync fournit une page sous forme de JsonObject ; NextValuesAsync son tableau value.
  • IAsyncEnumerable<JsonObject> permet await foreach sur les enregistrements de plusieurs pages.
  • @odata.nextLink pilote la pagination, avec liens de continuation HTTP(S) relatifs ou absolus.
  • OnRequest permet des en-têtes personnalisés ; CancellationToken gère l’annulation et Rewind() réinitialise le lecteur.
Un petit point de départ C#
using Robbiblubber.Data.Util.OData;

using HttpClient client = new();
ODataReader reader = new(client,
    "https://service.example.org/odata/Products?$select=Id,Name");

await foreach (var product in reader)
{
    Console.WriteLine(product["Name"]);
}

Remplacer l’URL et configurer HttpClient pour l’authentification si nécessaire. Le lecteur fournit des enregistrements JsonObject.

Installation
dotnet add package Robbiblubber.Data.Util.OData

Les bibliothèques .NET sont distribuées via NuGet. Les outils et bibliothèques restent regroupés dans leurs suites et collections.

Voir tous les projets