IRONSOFTWAREHOME
UTILISATION D'IRONXL

Comment écrire des fichiers CSV en .NET avec IronXL

Curtis Chau
Curtis Chau
Updated: 28 juin 2026

Pourquoi les développeurs .NET ont-ils besoin d'une meilleure solution CSV ?

Les fichiers CSV sont essentiels à l'échange de données dans d'innombrables applications .NET , mais les options de la bibliothèque standard s'avèrent souvent insuffisantes face à la complexité des cas concrets. Des rapports financiers aux systèmes de gestion des stocks, il est possible de créer des fichiers CSV par programmation en quelques lignes de code seulement. Alors que des bibliothèques comme CsvHelper couvrent les opérations CSV de base, les développeurs modernes sont confrontés à des scénarios complexes : la conversion de classeurs Excel contenant des formules, la préservation des types de données lors de l'exportation et la gestion des flux de travail de feuilles de calcul de niveau entreprise. IronXL relève ces défis en combinant une écriture CSV fiable avec toutes les fonctionnalités d'Excel dans une seule bibliothèque sans dépendance qui suit les normes RFC 4180 .

Cela le rend idéal pour les développeurs qui créent un module d'écriture CSV .NET personnalisé ou un analyseur CSV .NET prenant en charge plusieurs colonnes, une logique de traitement spécifique aux lignes et des séparateurs déduits automatiquement. Ce tutoriel vous présente les fonctionnalités CSV d'IronXL, de la création de fichiers de base à l'exportation de données à l'échelle de l'entreprise.

Comment installer et configurer IronXL?

L'installation IronXL ne prend que quelques secondes via le gestionnaire de packages NuGet . Vous pouvez utiliser soit la console du gestionnaire de packages, soit l'interface de ligne de commande .NET :

PM > Install-Package IronXL.Excel

Une fois installé, ajoutez l'espace de noms IronXL et commencez immédiatement à écrire des fichiers CSV. L'exemple suivant montre comment créer un classeur, le remplir de données et l'exporter au format CSV à l'aide d'instructions de niveau supérieur dans .NET 10 :

using IronXL;

// Create a new workbook and worksheet
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("data");

// Add headers
workSheet["A1"].Value = "Product";
workSheet["B1"].Value = "Quantity";
workSheet["C1"].Value = "Price";

// Add data rows
workSheet["A2"].Value = "Widget";
workSheet["B2"].Value = 100;
workSheet["C2"].Value = 19.99;

workSheet["A3"].Value = "Gadget";
workSheet["B3"].Value = 250;
workSheet["C3"].Value = 34.50;

workSheet["A4"].Value = "Component";
workSheet["B4"].Value = 75;
workSheet["C4"].Value = 8.99;

// Save as CSV with comma delimiter
workBook.SaveAsCsv("inventory.csv", ",");

Ce programme simple montre comment écrire du contenu CSV directement depuis votre code C#, en créant un objet WorkBook qui contient vos données. La méthode SaveAsCsv utilise la virgule comme séparateur par défaut, mais vous permet de spécifier n'importe quel caractère délimiteur, ce qui est utile dans les scénarios spécifiques aux paramètres régionaux où les points-virgules ou les tabulations sont le séparateur de colonnes standard.

Comprendre le modèle de classeur et de feuille de calcul

IronXL organise les données selon une hiérarchie classeur-feuille de calcul. Un classeur (WorkBook) sert de conteneur pour un ou plusieurs objets feuille de calcul (WorkSheet) , chacun représentant une grille de cellules. Lorsque vous exportez au format CSV, IronXL crée un fichier par feuille de calcul, les nommant avec le modèle filename.SheetName.csv.

Ce modèle vous offre une API cohérente, que vous créiez de nouveaux fichiers à partir de zéro, chargiez des workbooks Excel existants, ou exportiez des données à partir d'une base de données. Vous référencez les cellules en utilisant la notation standard d'Excel (A1, B2) ou des entiers de lignes et colonnes basés sur zéro, selon ce qui convient à votre flux de travail.

Comment écrire des fichiers CSV avec des délimiteurs personnalisés ?

Les différentes régions et les différents systèmes nécessitent des séparateurs de colonnes différents. Les langues européennes utilisent souvent le point-virgule car les virgules apparaissent dans les nombres décimaux. Les valeurs séparées par des tabulations (TSV) sont courantes dans les pipelines de bioinformatique et de traitement des journaux. La méthode SaveAsCsv d'IronXL accepte toute chaîne de caractères comme délimiteur :

using IronXL;

WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("sales");

workSheet["A1"].Value = "Region";
workSheet["B1"].Value = "Revenue";
workSheet["C1"].Value = "Units";

workSheet["A2"].Value = "Europe";
workSheet["B2"].Value = "1250000.50";
workSheet["C2"].Value = 3400;

workSheet["A3"].Value = "Nonrth America";
workSheet["B3"].Value = "2800000.00";
workSheet["C3"].Value = 7200;

// Semicolon delimiter for European locales
workBook.SaveAsCsv("sales_europe.csv", ";");

// Tab delimiter for TSV output
workBook.SaveAsCsv("sales_tsv.tsv", "\t");

La chaîne de délimitation est insérée directement dans l'emplacement du caractère séparateur sans aucune configuration d'analyse supplémentaire. IronXL gère les guillemets pour les cellules contenant le caractère délimiteur, garantissant ainsi que la sortie est conforme à la RFC 4180 .

Comment convertir des classeurs Excel en CSV ?

Comment créer un écrivain CSV .NET en utilisant IronXL : Figure 1 - Exemple de sortie CSV avec IronXL

IronXL excelle dans la conversion de fichiers Excel existants au format CSV , l'évaluation des formules et la préservation de l'intégrité des données. Ceci est essentiel lorsque l'on travaille avec des feuilles de calcul contenant à la fois des lignes d'en-tête et des valeurs calculées dynamiquement.

using IronXL;

// Load an Excel file with formulas and formatting
WorkBook workBook = WorkBook.Load("financial_report.xlsx");

// Evaluate all formulas before export so calculated values appear in CSV
workBook.EvaluateAll();

// Export to CSV -- each worksheet creates a separate CSV file
// Creates: report.Sheet1.csv, report.Sheet2.csv, etc.
workBook.SaveAsCsv("report.csv", ",");

Lors de la conversion de classeurs à plusieurs feuilles, IronXL génère automatiquement des fichiers CSV individuels pour chaque feuille de calcul. Les calculs des formules sont exécutés avant l'exportation, garantissant ainsi l'exactitude des données dans le fichier CSV final. La méthode EvaluateAll résout toutes les formules, y compris les références entre feuilles, avant que le fichier ne soit écrit sur le disque.

Sortie

Vous pouvez tout d'abord voir ici les fichiers CSV générés à partir du fichier Excel multi-feuilles :

Comment créer un écrivain CSV .NET en utilisant IronXL : Figure 2 - Fichiers CSV

Voici un exemple de comparaison entre une feuille Excel et le fichier CSV correspondant :

Comment créer un écrivain CSV .NET en utilisant IronXL : Figure 3 - Exemple de sortie

Comment exporter un DataTable au format CSV ?

Pour les applications basées sur des bases de données, IronXL facilite les exportations DataTable. L'exemple suivant lit un DataTable d'une source de données simulée et l'écrit en CSV avec un délimiteur point-virgule :

using System.Data;
using IronXL;

// Simulate a DataTable from a database query
DataTable dataTable = GetSalesData();

WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("sales");

// Write column headers from DataTable schema
for (int col = 0; col < dataTable.Columns.Count; col++)
{
    workSheet.SetCellValue(0, col, dataTable.Columns[col].ColumnName);
}

// Write data rows
int row = 1;
foreach (DataRow dataRow in dataTable.Rows)
{
    for (int col = 0; col < dataTable.Columns.Count; col++)
    {
        workSheet.SetCellValue(row, col, dataRow[col]?.ToString() ?? string.Empty);
    }
    row++;
}

// Export with semicolon delimiter for European compatibility
workBook.SaveAsCsv("sales_data.csv", ";");

Lors de l'importation d'un DataTable, chaque ligne de la collection dataTable.Rows devient une nouvelle ligne dans la feuille de calcul. IronXL préserve les types de données lors de la conversion -- les nombres restent numériques, les dates conservent leur formatage et le texte gère les caractères spéciaux sans configuration supplémentaire.

Sortie

Vous pouvez voir ici la source de données fictive à côté du fichier CSV de sortie :

Comment créer un écrivain CSV .NET en utilisant IronXL : Figure 4 - Exportation d'un DataTable vers une sortie CSV

Première étape :
arrow pointer

Comment IronXL se compare-t-il à CsvHelper pour l'écriture de fichiers CSV ?

Prenons l'exemple de cet exemple d'exportation de données d'employés illustrant les flux de travail d'écriture CSV avec les deux bibliothèques.

Implémentation de CsvHelper :

using System.Globalization;
using System.IO;
using CsvHelper;

using var writer = new StreamWriter("employees.csv");
using var csv = new CsvWriter(writer, CultureInfo.InvariantCulture);
csv.WriteRecords(employees);

Implémentation d'IronXL :

using IronXL;

WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("employees");

int rowIndex = 1;
foreach (var emp in employees)
{
    workSheet[$"A{rowIndex}"].Value = emp.Name;
    workSheet[$"B{rowIndex}"].Value = emp.Salary;
    workSheet[$"C{rowIndex}"].Value = emp.StartDate;
    rowIndex++;
}

workBook.SaveAsCsv("employees.csv", ",");
Comparaison des fonctionnalités IronXL et de CsvHelper
CaractéristiqueCsvHelperIronXL
Écriture CSV de baseOuiOui
Conversion Excel vers CSVNonOui
Évaluation de la formuleNonOui
Gestion de plusieurs feuillesNonOui
Préservation du type de donnéesManuelAutomatique
Prise en charge des formats Excel (XLSX, XLS, XLSM)NonOui
Aucune suite Microsoft Office requiseOuiOui
Mise en forme et styles des cellulesNonOui
Multiplateforme (prise en charge de .NET 10)OuiOui

CsvHelper gère efficacement la sérialisation simple des objets POCO. IronXL offre des capacités supplémentaires lorsque vous devez charger des fichiers Excel existants, évaluer des formules avant l'exportation, ou gérer les plages de feuilles de calcul avec un contrôle précis. Si votre flux de travail implique de recevoir des fichiers .xlsx des utilisateurs professionnels et de les convertir en CSV pour les systèmes en aval, IronXL supprime une étape entière de conversion de votre pipeline.

Quelles sont les fonctionnalités Enterprise IronXL propose pour l'exportation CSV ?

La méthode SaveAsCsv d'IronXL est livrée avec plusieurs capacités prêtes à être déployées :

Fonctionnalités d'exportation CSV IronXL Enterprise
CaractéristiqueDescription du projetCas d'utilisation
Délimiteurs personnalisésVirgule, point-virgule, tabulation ou tout autre caractèreCompatibilité régionale
Options d'encodageUTF-8, UTF-16 et encodages personnalisésEnsembles de caractères internationaux
Évaluation de la formuleCalcule les formules Excel avant l'exportationRapports financiers, données dynamiques
Support multiplateformeWindows, Linux, macOSDéploiements dans le cloud et les conteneurs
Exportation multi-feuillesUn fichier CSV par feuille de calculStructures complexes des classeurs
Conformité à la RFC 4180Guillemets automatiques pour les caractères spéciauxInteropérabilité garantie

Vous pouvez appliquer le formatage des données de cellule avant l'exportation pour contrôler comment les nombres, les devises et les dates apparaissent dans la sortie CSV. Pour les grands ensembles de données, traitez les données par morceaux en utilisant les opérations de plage de feuille de calcul pour garder l'utilisation de la mémoire prévisible.

La prise en charge multiplateforme vous permet de déployer la génération de fichiers CSV basée sur IronXL sur des conteneurs Linux dans Kubernetes ou Azure App Service sans aucune modification de votre code. La bibliothèque ne contient aucune dépendance non gérée, elle fonctionne donc de manière identique sur tous les systèmes d'exploitation. Consultez le guide de compatibilité de la plateforme IronXL pour plus de détails sur les environnements d'exécution pris en charge.

Comment gérer les problèmes courants d'exportation CSV ?

Lorsqu'on travaille avec des exportations CSV à grande échelle, plusieurs problèmes prévisibles surviennent. Voici comment résoudre chacun d'eux :

Caractères spéciaux dans les données : IronXL échappe automatiquement les guillemets, les virgules et les sauts de ligne dans les valeurs des cellules. Vous n'avez pas besoin de prétraiter les chaînes de caractères ni d'écrire une logique d'échappement personnalisée : la bibliothèque gère en interne les règles de citation RFC 4180.

Gestion des fichiers volumineux : Pour les classeurs contenant des dizaines de milliers de lignes, utilisez les plages de feuille de calcul pour traiter les données par lots. L'écriture dans des feuilles intermédiaires avant l'exportation finale vous permet de contrôler l'allocation de mémoire.

Problèmes d'encodage : spécifiez explicitement l'encodage UTF-8 lorsque vous utilisez des caractères internationaux, des écritures asiatiques ou des émojis dans les valeurs des cellules. IronXL prend en charge nativement l'encodage UTF-8 et UTF-16, aucune bibliothèque d'encodage tierce n'est donc requise.

Données manquantes ou mal saisies : IronXL conserve par défaut les formats numériques et de date. Lorsqu'une cellule contient une formule qui référence des données manquantes, EvaluateAll() résultera en une valeur d'erreur plutôt que d'émettre silencieusement un texte vide, rendant les problèmes de qualité des données visibles tôt dans le pipeline.

Conflits de délimiteur : Si vos données contiennent le caractère délimiteur (par exemple, un champ de prix contenant $1,200.00 lorsqu'on utilise une virgule comme délimiteur), IronXL encadre automatiquement la valeur de guillemets doubles selon les règles de la RFC 4180.

Pour obtenir des instructions détaillées, consultez la documentation IronXL CSV , la référence API et les ressources d'assistance .

Comment lire et analyser des fichiers CSV avec IronXL?

L'écriture dans un fichier CSV ne représente que la moitié du travail. IronXL gère également la lecture et l'analyse des fichiers CSV , chargeant les données séparées par des virgules dans une structure de classeur que vous pouvez interroger, filtrer et transformer avant de les exporter dans n'importe quel format.

using IronXL;

// Load an existing CSV file into a workbook
WorkBook workBook = WorkBook.Load("sales_data.csv");
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Iterate over rows and process data
foreach (var row in workSheet.Rows)
{
    string product = row["A"].ToString();
    int quantity = row["B"].IntValue;
    decimal price = (decimal)row["C"].DoubleValue;

    Console.WriteLine($"Product: {product}, Qty: {quantity}, Price: {price:C}");
}

// Apply a filter and re-export to a new CSV
workBook.SaveAsCsv("filtered_output.csv", ",");

Le chargement d'un fichier CSV via IronXL vous donne accès à l' API complète de la feuille de calcul , y compris le tri , le filtrage et l'évaluation des formules. Vous pouvez également enregistrer les données chargées sous forme de fichier Excel à l'aide de SaveAs , convertissant ainsi le format CSV en XLSX en un seul appel de méthode – une exigence courante lors de la création de services de génération de rapports.

Comment valider les données CSV avant l'exportation ?

La validation des données avant l'exportation permet d'éviter les défaillances en aval du pipeline. IronXL vous donne un accès direct aux valeurs et aux types des cellules, ce qui vous permet de vérifier les valeurs nulles, d'imposer des plages numériques et de rejeter les dates mal formées avant l'écriture :

using IronXL;

WorkBook workBook = WorkBook.Load("input.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

var errors = new List<string>();

for (int rowIdx = 1; rowIdx <= workSheet.RowCount; rowIdx++)
{
    string productName = workSheet[$"A{rowIdx}"].StringValue;
    double price = workSheet[$"C{rowIdx}"].DoubleValue;

    if (string.IsNullOrWhiteSpace(productName))
        errors.Add($"Row {rowIdx}: Product name is empty.");

    if (price <= 0)
        errors.Add($"Row {rowIdx}: Price must be greater than zero (found {price}).");
}

if (errors.Count == 0)
{
    workBook.SaveAsCsv("validated_output.csv", ",");
    Console.WriteLine("Export complete.");
}
else
{
    foreach (var error in errors)
        Console.WriteLine(error);
}

Ce modèle est particulièrement précieux dans les pipelines ETL où les lignes erronées doivent être rejetées — et consignées — plutôt qu'exportées silencieusement. Les méthodes d'accès aux données des cellules sur les objets RangeRow et Cell d'IronXL renvoient des valeurs fortement typées, réduisant le risque d'erreurs de coercition silencieuse des types.

Comment débuter avec IronXL pour l'écriture de fichiers CSV ?

IronXL transforme l'écriture de fichiers CSV, qui représente un défi d'analyse syntaxique, en une opération directe. En combinant les fonctionnalités CSV avec la prise en charge des classeurs Excel, l'évaluation des formules et la gestion automatique des types, il élimine la complexité liée à la gestion de plusieurs bibliothèques ou aux conversions de données manuelles.

L' essai gratuit vous donne un accès complet à toutes les fonctionnalités, y compris l'exportation multi-feuilles, l'évaluation des formules et le déploiement multiplateforme, sans nécessiter de clé de licence pendant le développement. Lorsque vous serez prêt à passer à la production, la licence commence par un seul niveau développeur qui couvre l'utilisation commerciale.

Ressources clés pour démarrer :

Prêt à créer des flux de travail CSV prêts pour la production ? Démarrez votre essai gratuit et effectuez votre première exportation CSV en moins de cinq minutes.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes et créer des manuels bien structurés et visuellement attrayants.

...
Lire la suite

Articles connexes

Key in blue circle

Obtenez votre clé d'essai de 30 jours instantanément.

Your trial license will be sent to your email address

Aucune restriction. 100 % débloqué. Pas de carte bancaire.

bullet_checkedAucune carte de crédit ou création de compte requiseAucune restriction. 100 % débloqué. Pas de carte bancaire.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Réservez votre Démonstration en direct gratuite
Booking Badge

De confiance par des millions d'ingénieurs dans le monde entier

Logos des clients d'Iron Software
Obtenez Votre Consultation sans Engagement
Remplissez le formulaire ci-dessous ou envoyez un email à sales@ironsoftware.com
Vos informations seront toujours gardées confidentielles.
De confiance par des millions d'ingénieurs dans le monde entier
Logos des clients d'Iron Software
Obtenez votre clé d'essai 30 jours gratuitement.
Aucune carte de crédit ou création de compte requise