Passer au contenu du pied de page
UTILISATION D'IRONXL

Bibliothèque CSV C# : Tutoriel complet en utilisant IronXL

Travailler avec des fichiers CSV en C# nécessite une bibliothèque qui gère plus qu'une simple analyse de lignes. Vous avez besoin d'une détection fiable de l'encodage, d'une gestion correcte des délimiteurs, d'un typage fort et, idéalement, de la possibilité de déplacer des données entre CSV et Excel sans maintenir deux dépendances distinctes. IronXL offre tout cela dans une seule bibliothèque .NET – sans Microsoft Office, sans interopérabilité COM et sans solutions de contournement fragiles. Que vous traitiez des fichiers de données plats sur un serveur, construisiez un pipeline de données ou proposiez aux utilisateurs le téléchargement d'une feuille de calcul, IronXL vous offre une API unique et cohérente pour chaque format.

Comment configurer une bibliothèque de feuilles de calcul C# ?

L'installation IronXL via NuGet prend moins d'une minute. Ouvrez la console du gestionnaire de packages dans Visual Studio et exécutez la commande ci-dessous, ou utilisez l'interface de ligne de commande .NET depuis n'importe quel terminal :

Install-Package IronXL
dotnet add package IronXL
Install-Package IronXL
dotnet add package IronXL
SHELL

Une fois le package installé, ajoutez l'espace de noms à tous les fichiers dans lesquels vous souhaitez travailler avec des données de type tableur :

using IronXL;
using IronXL;
$vbLabelText   $csharpLabel

IronXL cible .NET Framework 4.6.2+ et toutes les versions modernes de .NET (Core, 5, 6, 7, 8, 9 et 10). Il fonctionne sous Windows, Linux et macOS, ce qui le rend adapté aussi bien aux outils de bureau qu'aux charges de travail de serveurs conteneurisés. Consultez le guide d'installation IronXL pour obtenir des instructions étape par étape concernant les sources des packages et l'activation de la licence.

Comment lire des fichiers CSV en C# ?

La lecture d'un fichier CSV avec IronXL suit le même schéma que le chargement de n'importe quelle feuille de calcul. Appelez WorkBook.Load avec le chemin du fichier et IronXL déduira le format de l'extension ; aucune configuration supplémentaire n'est requise :

// Load a CSV file into a WorkBook
WorkBook workBook = WorkBook.Load("sales_data.csv");

// Access the default worksheet
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Read individual cells by Excel-style address
string customerName = workSheet["A2"].StringValue;
decimal orderAmount = workSheet["B2"].DecimalValue;

// Iterate rows, starting at index 1 to skip the header
for (int i = 1; i < workSheet.Rows.Count(); i++)
{
    var row = workSheet.Rows[i];
    Console.WriteLine($"Customer: {row.Columns[0].Value}, Amount: {row.Columns[1].Value}");
}
// Load a CSV file into a WorkBook
WorkBook workBook = WorkBook.Load("sales_data.csv");

// Access the default worksheet
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Read individual cells by Excel-style address
string customerName = workSheet["A2"].StringValue;
decimal orderAmount = workSheet["B2"].DecimalValue;

// Iterate rows, starting at index 1 to skip the header
for (int i = 1; i < workSheet.Rows.Count(); i++)
{
    var row = workSheet.Rows[i];
    Console.WriteLine($"Customer: {row.Columns[0].Value}, Amount: {row.Columns[1].Value}");
}
$vbLabelText   $csharpLabel

L'objet WorkBook expose le modèle complet de la feuille de calcul. Vous accédez aux cellules avec une notation Excel familière telle que "A2", et les propriétés de conversion intégrées -- StringValue, DecimalValue, IntValue, DateTimeValue -- gèrent la conversion de type afin que vous n'ayez pas à analyser les chaînes manuellement.

Quelles sont les options d'adressage cellulaire disponibles ?

Au-delà de l'accès à une seule cellule, IronXL prend en charge la notation de plage et l'itération de lignes/colonnes. Vous pouvez adresser un bloc rectangulaire de cellules avec une expression de plage comme workSheet["A2:C10"] et l'itérer comme une collection plate. Ceci est utile lorsque vous souhaitez valider ou transformer un bloc de données connu sans écrire de boucles imbriquées :

// Access a range and print each value
foreach (var cell in workSheet["A2:C10"])
{
    Console.WriteLine($"{cell.AddressString}: {cell.Value}");
}
// Access a range and print each value
foreach (var cell in workSheet["A2:C10"])
{
    Console.WriteLine($"{cell.AddressString}: {cell.Value}");
}
$vbLabelText   $csharpLabel

Pour les nombres de lignes dynamiques, la collection workSheet.Rows reflète automatiquement les données chargées, vous n'avez donc pas besoin de coder en dur les nombres de lignes. Consultez le tutoriel C# sur la lecture de fichiers CSV pour découvrir d'autres modèles, notamment la détection d'en-têtes et les fichiers à encodage multiple.

Comment faire correspondre les lignes CSV à des objets personnalisés ?

Une exigence courante consiste à convertir des données CSV tabulaires en une collection typée. Vous pouvez parcourir les lignes et projeter chacune d'elles dans une classe C# simple :

public record SalesRecord(string Customer, decimal Amount, DateTime OrderDate);

WorkBook workBook = WorkBook.Load("sales_data.csv");
WorkSheet workSheet = workBook.DefaultWorkSheet;

var records = new List<SalesRecord>();

// Start at row 1 to skip the header row (row 0)
for (int i = 1; i < workSheet.Rows.Count(); i++)
{
    var row = workSheet.Rows[i];
    records.Add(new SalesRecord(
        Customer: row.Columns[0].StringValue,
        Amount: row.Columns[1].DecimalValue,
        OrderDate: row.Columns[2].DateTimeValue
    ));
}
public record SalesRecord(string Customer, decimal Amount, DateTime OrderDate);

WorkBook workBook = WorkBook.Load("sales_data.csv");
WorkSheet workSheet = workBook.DefaultWorkSheet;

var records = new List<SalesRecord>();

// Start at row 1 to skip the header row (row 0)
for (int i = 1; i < workSheet.Rows.Count(); i++)
{
    var row = workSheet.Rows[i];
    records.Add(new SalesRecord(
        Customer: row.Columns[0].StringValue,
        Amount: row.Columns[1].DecimalValue,
        OrderDate: row.Columns[2].DateTimeValue
    ));
}
$vbLabelText   $csharpLabel

Cette approche sépare clairement la logique d'analyse syntaxique de la logique métier et rend chaque enregistrement fortement typé dans le reste de votre application.

Comment utiliser une bibliothèque CSV C# pour lire et écrire des fichiers : Figure 1 - Lecture de la sortie d'un fichier CSV

Comment écrire des fichiers CSV en C# ?

La création d'un fichier CSV à partir de zéro implique trois étapes : créer un WorkBook, remplir un WorkSheet et appeler SaveAsCsv. Le processus est identique à la manière dont vous créeriez n'importe quelle feuille de calcul, ce qui garantit la cohérence de l'API quel que soit le format de sortie :

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

// Write header row
workSheet["A1"].Value = "Product";
workSheet["B1"].Value = "Quantity";
workSheet["C1"].Value = "Price";

// Write data rows
workSheet["A2"].Value = "Widget A";
workSheet["B2"].Value = 250;
workSheet["C2"].Value = 9.99;

workSheet["A3"].Value = "Gadget B";
workSheet["B3"].Value = 120;
workSheet["C3"].Value = 24.50;

// Export to CSV
workBook.SaveAsCsv("inventory.csv");
// Create a new workbook and worksheet
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("inventory");

// Write header row
workSheet["A1"].Value = "Product";
workSheet["B1"].Value = "Quantity";
workSheet["C1"].Value = "Price";

// Write data rows
workSheet["A2"].Value = "Widget A";
workSheet["B2"].Value = 250;
workSheet["C2"].Value = 9.99;

workSheet["A3"].Value = "Gadget B";
workSheet["B3"].Value = 120;
workSheet["C3"].Value = 24.50;

// Export to CSV
workBook.SaveAsCsv("inventory.csv");
$vbLabelText   $csharpLabel

SaveAsCsv gère le placement du délimiteur, la mise entre guillemets des champs contenant des virgules et la normalisation des sauts de ligne. Vous n'avez rien à gérer manuellement. IronXL préserve les types numériques lors de l'exportation afin que les outils en aval tels qu'Excel ou pandas lisent les nombres comme des nombres, et non comme des chaînes de texte entre guillemets.

Comment exporter un DataTable au format CSV ?

De nombreuses applications récupèrent des données d'une base de données dans un DataTable. IronXL peut insérer un code complet DataTable dans une feuille de calcul en un seul appel, ce qui simplifie les exportations en masse :

DataTable dataTable = GetProductsFromDatabase();

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

workSheet.InsertDataTable(dataTable, "A1");

workBook.SaveAsCsv("products.csv");
DataTable dataTable = GetProductsFromDatabase();

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

workSheet.InsertDataTable(dataTable, "A1");

workBook.SaveAsCsv("products.csv");
$vbLabelText   $csharpLabel

La méthode InsertDataTable écrit les en-têtes de colonnes à partir du schéma DataTable et remplit toutes les lignes à partir de l'adresse que vous fournissez. Pour les grands ensembles de données, cette méthode est bien plus efficace que de parcourir les lignes manuellement. Consultez la documentation relative à l'exportation au format CSV pour connaître les options disponibles, notamment les délimiteurs personnalisés et les paramètres d'encodage.

Comment utiliser une bibliothèque CSV C# pour lire et écrire des fichiers : Figure 2 - Fichier CSV nouvellement créé avec IronXL

Comment convertir des fichiers CSV en fichiers Excel et inversement en C# ?

L'une des fonctionnalités les plus précieuses d' IronXL est la conversion bidirectionnelle entre les formats CSV et Excel. L'API est symétrique -- Load lit n'importe quel format pris en charge, et la famille de méthodes Save écrit dans votre format cible :

// Convert CSV to Excel
WorkBook csvWorkBook = WorkBook.Load("data.csv");
csvWorkBook.SaveAs("data.xlsx");

// Convert Excel back to CSV
WorkBook xlsxWorkBook = WorkBook.Load("report.xlsx");
xlsxWorkBook.SaveAsCsv("report.csv");
// Convert CSV to Excel
WorkBook csvWorkBook = WorkBook.Load("data.csv");
csvWorkBook.SaveAs("data.xlsx");

// Convert Excel back to CSV
WorkBook xlsxWorkBook = WorkBook.Load("report.xlsx");
xlsxWorkBook.SaveAsCsv("report.csv");
$vbLabelText   $csharpLabel

Ces conversions préservent l'intégrité des données. Les valeurs numériques restent numériques, les champs de date conservent leur type et les résultats des formules sont évalués à leurs valeurs calculées avant d'être enregistrés. Lorsque vous convertissez un fichier Excel multi-feuilles au format CSV, IronXL crée automatiquement un fichier CSV distinct pour chaque feuille de calcul :

WorkBook multiSheetWorkBook = WorkBook.Load("quarterly_report.xlsx");

// Produces: quarterly_report.Sheet1.csv, quarterly_report.Sheet2.csv, etc.
multiSheetWorkBook.SaveAsCsv("quarterly_report.csv");
WorkBook multiSheetWorkBook = WorkBook.Load("quarterly_report.xlsx");

// Produces: quarterly_report.Sheet1.csv, quarterly_report.Sheet2.csv, etc.
multiSheetWorkBook.SaveAsCsv("quarterly_report.csv");
$vbLabelText   $csharpLabel

Ce comportement est particulièrement utile pour les processus de reporting où les utilisateurs en aval attendent un sujet par fichier. Le tutoriel sur l'écriture CSV aborde des options supplémentaires, comme la spécification du délimiteur et le contrôle des feuilles incluses dans l'exportation.

Comment utiliser une bibliothèque CSV C# pour lire et écrire des fichiers : Figure 3 - Fichier Excel multipage enregistré sous forme de fichiers CSV séparés.

Comment utiliser une bibliothèque CSV C# pour lire et écrire des fichiers : Figure 4 - Fichier Excel original vs. fichier CSV converti

Commencez avec IronXL maintenant.
green arrow pointer

Pourquoi les bibliothèques basées uniquement sur le format CSV sont-elles insuffisantes pour les projets réels ?

De nombreux développeurs C# commencent par CsvHelper ou leTextFieldParser de Microsoft.VisualBasic. Ce sont deux outils performants pour les flux de travail utilisant exclusivement des fichiers CSV. Le problème apparaît lorsque les exigences évoluent : un intervenant demande un téléchargement Excel au lieu d'un fichier CSV, le service financier a besoin que les formules soient conservées ou la politique de sécurité exige des fichiers protégés par mot de passe. À ce stade, une bibliothèque compatible uniquement avec les fichiers CSV vous oblige à ajouter une seconde dépendance et à maintenir deux chemins d'intégration distincts. Une bibliothèque de feuilles de calcul unifiée élimine cette séparation dès le départ.

Comparaison des fonctionnalités entre IronXL et les bibliothèques CSV uniquement
Capacité IronXL CsvHelper TextFieldParser
Lire des fichiers CSV Oui Oui Oui
Écrire des fichiers CSV Oui Oui Non
Lecture/écriture XLSX Oui Non Non
Évaluation de la formule Oui Non Non
Style et formatage de cellule Oui Non Non
Fichiers protégés par mot de passe Oui Non Non
Dépendance au bureau requise Non Non Non
Multiplateforme (.NET 10) Oui Oui Limitée

Quelles sont les fonctionnalités supplémentaires offertes par une bibliothèque unifiée pour les feuilles de calcul ?

Au-delà de la simple conversion de format, une bibliothèque qui gère à la fois les formats CSV et Excel vous offre des opérations de tableur qui deviennent utiles à mesure que les projets se développent. Avec IronXL en particulier, vous obtenez :

  • Évaluation de formules -- vous pouvez écrire des formules comme =SUM(B2:B10) dans des cellules et lire le résultat calculé sans qu'Excel soit présent.
  • Style des cellules et des plages : appliquez des épaisseurs de police, des couleurs d'arrière-plan, des formats de nombre et des bordures via l' API de style IronXL .
  • Protection par mot de passe -- ouvrez les classeurs chiffrés avec WorkBook.Load("secure.xlsx", "password") et enregistrez de nouveaux fichiers chiffrés.
  • Plages nommées : définissez et référencez des régions nommées comme dans Excel, ce qui simplifie la création de formules et la validation des données.
  • Prise en charge des fichiers volumineux -- IronXL traite les données en code géré sans charger l'intégralité du fichier en mémoire en une seule fois, ce qui permet de maintenir une utilisation prévisible de la mémoire même pour les fichiers contenant des dizaines de milliers de lignes.

La page des fonctionnalités IronXL contient la liste complète des opérations prises en charge.

Comment IronXL gère-t-il les déploiements multiplateformes ?

Un problème récurrent avec les bibliothèques de tableurs est leur comportement spécifique à chaque plateforme. Les bibliothèques qui dépendent de l'interopérabilité COM ne fonctionnent que sous Windows, et les bibliothèques qui interagissent avec Office nécessitent une installation d'Office. IronXL est un code entièrement géré sans dépendances natives, ce qui permet au même binaire de fonctionner sans modification sur des conteneurs Linux, des machines de développement macOS et des serveurs Windows. Cela simplifie le déploiement sur Azure , AWS, Docker ou toute cible .NET 10.

Pour les développeurs qui créent des pipelines de données avec des outils comme Dapper ou Entity Framework Core , IronXL s'intègre naturellement comme couche de sérialisation : il lit les fichiers CSV, les traite avec votre ORM et exporte les résultats aux formats XLSX ou CSV. La page de licences IronXL détaille les différents niveaux de licences disponibles pour un usage commercial.

Comment utiliser une bibliothèque CSV C# pour lire et écrire des fichiers : Figure 5 - Tableau comparatif IronXL vs. bibliothèques CSV uniquement

Quelles sont vos prochaines étapes ?

IronXL vous offre une API unique et cohérente pour la lecture, l'écriture et la conversion de fichiers CSV et Excel dans n'importe quelle application .NET 10. Les principaux avantages sont simples : aucune dépendance à Office, compatibilité multiplateforme, saisie robuste des valeurs de cellules et passage direct des projets utilisant uniquement le format CSV à une fonctionnalité complète de tableur dès que les besoins évoluent.

Lorsque vous serez prêt à approfondir le sujet, commencez par les thèmes les plus pertinents pour votre projet actuel. Si vous travaillez principalement avec des pipelines d'importation CSV, les modèles de lecture et de mappage présentés ci-dessus couvrent la majorité des scénarios réels. Si vos exigences de sortie varient (parfois CSV pour les scripts en aval, parfois XLSX pour les utilisateurs finaux), la section sur la conversion de format montre comment fournir les deux avec une seule base de code.

Pour les équipes qui créent des systèmes de reporting ou exportent des résultats de bases de données, l'approche InsertDataTable s'adapte bien et évite la surcharge de performance de l'affectation de cellules ligne par ligne. Associez cela à la mise en forme des cellules pour produire des rapports que les utilisateurs peuvent ouvrir directement dans Excel sans reformatage.

Pour aller de l'avant, suivez ces étapes :

  1. Installez la bibliothèque via NuGet en utilisant Install-Package IronXL ou dotnet add package IronXL.
  2. Suivez le guide de démarrage rapide d' IronXL pour charger votre premier fichier CSV.
  3. Explorez la conversion de format avec le tutoriel CSV vers Excel lorsque vous avez besoin des deux formats dans le même projet.
  4. Consultez la documentation de l'API dans la section Référence des objets IronXL pour obtenir des informations sur les opérations avancées sur les cellules, la prise en charge des formules et le style.
  5. Démarrez un essai gratuit sur la page de licence d'essai IronXL – aucune carte de crédit requise, assistance technique incluse.

Si vous évaluez les options en parallèle avec d'autres outils Iron Software , la Suite de produits IronSoftware couvre la génération de PDF avec IronPDF , la lecture de codes-barres, l'OCR et bien plus encore – le tout partageant le même modèle de licence et le même canal de support.

Questions Fréquemment Posées

Qu'est-ce qu'IronXL et comment aide-t-il avec les fichiers CSV en C# ?

IronXL est une bibliothèque C# puissante qui permet aux développeurs de lire, écrire et convertir des fichiers CSV de manière fluide. Elle offre un support étendu aux classeurs Excel, garantissant des performances élevées et une gestion cohérente des lignes, colonnes et types de données.

Pourquoi devrais-je utiliser IronXL plutôt que des bibliothèques gratuites comme CsvHelper ?

Bien que CsvHelper soit excellent pour les opérations CSV de base, IronXL excelle avec des fonctionnalités telles que la prise en charge des classeurs Excel, une performance améliorée et une gestion robuste des types de données, la rendant adaptée à des flux de travail de feuilles de calcul plus complexes.

IronXL peut-il gérer à la fois les formats CSV et Excel ?

Oui, IronXL est conçu pour gérer efficacement les formats CSV et Excel, vous permettant de convertir facilement entre les deux.

IronXL supporte-t-il une gestion des données haute performance ?

IronXL est conçu pour des performances élevées, assurant des processus d'importation et d'exportation de données fluides avec une vitesse et une efficacité optimales.

Est-il possible d'intégrer IronXL avec les flux de travail de feuilles de calcul existants ?

Absolument, IronXL s'intègre parfaitement avec les flux de travail de feuilles de calcul existants, améliorant la capacité à gérer les données à travers les formats CSV et Excel.

Qu'est-ce qui rend IronXL adapté aux opérations complexes de fichiers CSV ?

IronXL fournit des fonctionnalités robustes telles qu'une gestion cohérente des lignes, colonnes et types de données, le rendant idéal pour les opérations complexes de fichiers CSV qui nécessitent plus qu'une gestion de base.

Puis-je utiliser IronXL pour convertir des fichiers CSV en Excel ?

Oui, l'une des principales fonctionnalités d'IronXL est sa capacité à convertir des fichiers CSV en format Excel et vice versa, rationalisant ainsi les processus de gestion de données.

Comment IronXL assure-t-il une gestion fiable des fichiers CSV ?

IronXL assure une gestion fiable des fichiers CSV grâce à ses fonctionnalités avancées qui incluent le support des types de données complexes et l'intégration avec les fonctionnalités Excel.

Quels sont les avantages d'utiliser IronXL pour l'importation/exportation de données ?

IronXL offre des processus d'importation/exportation de données fluides, économisant aux développeurs du temps et des efforts tout en garantissant l'intégrité et l'exactitude des données à travers les formats.

IronXL est-il facile à utiliser pour les développeurs novices en opérations CSV en C# ?

Oui, IronXL est conçu avec des fonctionnalités conviviales et des exemples de code simples, le rendant accessible et facile à utiliser pour les développeurs novices en opérations CSV en C#.

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

Équipe de soutien Iron

Nous sommes en ligne 24 heures sur 24, 5 jours sur 7.
Chat
Email
Appelez-moi