Passer au contenu du pied de page
UTILISATION D'IRONXL

Comment lire des fichiers CSV avec des virgules en C#

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

Les fichiers CSV permettent l'échange de données entre d'innombrables applications .NET. Des rapports financiers aux systèmes d'inventaire, vous avez la liberté 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 robuste avec des fonctionnalités Excel complètes dans une seule bibliothèque, gérant facilement plusieurs colonnes dans une bibliothèque unique et 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, des fonctionnalités spécifiques à chaque ligne n'affectant que la ligne en cours de traitement et des séparateurs automatiquement déduits.

Premiers pas avec IronXL

L'installation d'IronXL ne prend que quelques secondes via le gestionnaire de packages NuGet :

Install-Package IronXL.Excel

Une fois installé, ajoutez l'espace de noms IronXL pour commencer à écrire des fichiers CSV et à travailler efficacement avec des valeurs séparées :

using IronXL;
class Program
{
    static void Main(string[] args)
    {
        // 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
        workSheet["A2"].Value = "Widget";
        workSheet["B2"].Value = 100;
        workSheet["C2"].Value = 19.99;
        // Save as CSV with comma delimiter
        workBook.SaveAsCsv("inventory.csv", ",");
    }
}
using IronXL;
class Program
{
    static void Main(string[] args)
    {
        // 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
        workSheet["A2"].Value = "Widget";
        workSheet["B2"].Value = 100;
        workSheet["C2"].Value = 19.99;
        // Save as CSV with comma delimiter
        workBook.SaveAsCsv("inventory.csv", ",");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Ce programme de test console simple montre comment écrire du contenu CSV directement depuis votre code C#, en créant un objet Workbook qui contient nos données. La méthode SaveAsCsv utilise un séparateur par défaut (la virgule) mais vous permet de définir éventuellement sep pour différentes langues ; Ceci est particulièrement utile lors de la manipulation d'un séparateur décimal ou d'un caractère de séparation de colonnes alternatif. En interne, sep gère l'allocation du tableau pour le tampon de sortie. Le paramètre sep mentionné précédemment vous permet de définir ce caractère.

Nous avons également démontré comment fournir un point d'entrée statique et comment effectuer une gestion efficace de la mémoire à l'aide d'un pool de ressources défini statiquement, permettant des performances élevées sur plusieurs lignes.

Techniques avancées de création de fichiers CSV

Comment lire les fichiers CSV avec des virgules en C# : Figure 1 - Exemple de sortie CSV avec IronXL

Techniques avancées de création de fichiers CSV

Conversion de classeurs Excel en CSV

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 lors de l'écriture de fichiers CSV contenant à la fois des lignes d'en-tête et des données générées dynamiquement.

// Load an Excel file with formulas and formatting
WorkBook workBook = WorkBook.Load("financial_report.xlsx");
// IronXL evaluates formulas before export
workBook.EvaluateAll();
// Export to CSV - each worksheet creates a separate CSV file
workBook.SaveAsCsv("report.csv", ",");
// Creates: report.Sheet1.csv, report.Sheet2.csv, etc.
// Load an Excel file with formulas and formatting
WorkBook workBook = WorkBook.Load("financial_report.xlsx");
// IronXL evaluates formulas before export
workBook.EvaluateAll();
// Export to CSV - each worksheet creates a separate CSV file
workBook.SaveAsCsv("report.csv", ",");
// Creates: report.Sheet1.csv, report.Sheet2.csv, etc.
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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. Mais ce n'est pas sa seule caractéristique. Le séparateur par défaut, déduit automatiquement, assure la compatibilité entre les régions, et la gestion de plusieurs lignes ou colonnes se fait de manière transparente.

Vous pouvez également utiliser un séparateur pouvant être nul pour les environnements dynamiques où les séparateurs pris en charge par défaut varient.

Sortie

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

Comment lire les fichiers CSV avec des virgules en C# : Figure 2 - Fichiers CSV

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

Comment lire les fichiers CSV avec des virgules en C# : Figure 3 - Exemple de sortie

Exportation de DataTable au format CSV

Pour les applications pilotées par base de données, IronXL simplifie les exportations de DataTable . Nous utilisons la variable Datarow au lieu d'une variable de référence classique v pour plus de clarté.

// Assume dataTable contains query results
DataTable dataTable = GetSalesData();
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("sales");
// Import DataTable directly
var row = 1;
foreach (var dataRow in dataTable.Rows)
{
    for (var col = 0; col < dataTable.Columns.Count; col++)
    {
        workSheet.SetCellValue(row, col, dataRow[col].ToString());
    }
    row++;
}
// Export with custom delimiter if needed
workBook.SaveAsCsv("sales_data.csv", ";");
// Assume dataTable contains query results
DataTable dataTable = GetSalesData();
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("sales");
// Import DataTable directly
var row = 1;
foreach (var dataRow in dataTable.Rows)
{
    for (var col = 0; col < dataTable.Columns.Count; col++)
    {
        workSheet.SetCellValue(row, col, dataRow[col].ToString());
    }
    row++;
}
// Export with custom delimiter if needed
workBook.SaveAsCsv("sales_data.csv", ";");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Lors de l'importation, chaque ligne horizontale de données 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 correctement les caractères spéciaux sans configuration supplémentaire.

Sortie

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

Comment lire les fichiers CSV avec des virgules en C# : Figure 4 - Exportation de DataTable en sortie CSV

IronXL vs CsvHelper : Comparaison côte à côte pour écrire des fichiers CSV

Prenons l'exemple de cet exemple d'exportation de données d'employés illustrant les flux de travail d'analyse et d'écriture de fichiers CSV.

Implémentation de CsvHelper :

using (var writer = new StreamWriter("employees.csv"))
using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
{
    csv.WriteRecords(employees);
}
using (var writer = new StreamWriter("employees.csv"))
using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
{
    csv.WriteRecords(employees);
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Implémentation d'IronXL :

WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("employees");
// Add data with automatic type handling
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", ",");
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("employees");
// Add data with automatic type handling
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", ",");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Caractéristique

CsvHelper

IronXL

Écriture CSV de base

Conversion Excel vers CSV

Évaluation de la formule

Gestion de plusieurs feuilles

Préservation du type de données

Manuel

Automatique

Prise en charge du format Excel

XLSX, XLS, XLSM

Aucune suite Microsoft Office requise

Alors que CsvHelper gère efficacement les opérations d'écriture de colonnes simples, IronXL offre la flexibilité nécessaire pour travailler avec plusieurs lignes, des chaînes interpolées et des scénarios de génération de code dynamique, et permet même des optimisations de bas niveau avec des constructions comme ref struct link.

Les développeurs peuvent énumérer les lignes correspondant à des critères spécifiques, gérer les séparateurs par défaut déduits automatiquement, ou même effectuer des tests avec de simples programmes de console qui exposent des fonctionnalités spécifiques à chaque ligne et uniquement la clé de chaque entrée pour le débogage.

Fonctionnalités et meilleures pratiques pour entreprises

La méthode SaveAsCsv d'IronXL inclut des fonctionnalités de niveau entreprise :

  • Délimiteurs personnalisés : prise en charge de la virgule, du point-virgule, de la tabulation ou de tout autre caractère (le séparateur par défaut peut être remplacé par le séparateur sep).
  • Options d'encodage : UTF-8, UTF-16 et encodages personnalisés
  • Évaluation des formules : calcule les formules Excel avant l'exportation
  • Support multiplateforme : Fonctionne sur Windows, Linux et macOS

Les développeurs peuvent également appliquer des méthodes d'extension pour accéder à plusieurs colonnes afin d'optimiser le traitement ou écrire des lignes CSV qui s'étendent sur plusieurs lignes lorsque le retour à la ligne est nécessaire.

Problèmes courants et solutions

Lorsqu'ils travaillent avec des exportations CSV, les développeurs rencontrent souvent les difficultés suivantes :

  • Caractères spéciaux dans les données : IronXL échappe automatiquement aux guillemets, virgules et sauts de ligne
  • Gestion des fichiers volumineux : Utilisez des plages de feuilles de calcul pour traiter les données par morceaux,
  • Problèmes d'encodage : Spécifiez l'encodage UTF-8 pour les caractères internationaux
  • Types de données manquants : IronXL conserve par défaut les formats numériques et de date.

Pour un dépannage détaillé, consultez la documentation CSV d'IronXL , la référence API et les ressources d'assistance .

Commencez dès aujourd'hui à créer votre outil d'écriture CSV.

IronXL transforme l'écriture de fichiers CSV, qui représente un défi d'analyse syntaxique, en une opération simple. 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é de la gestion de plusieurs bibliothèques ou des conversions de données manuelles.

Prêt à optimiser vos flux de travail CSV ? Démarrez votre essai gratuit à partir de $liteLicense.

Questions Fréquemment Posées

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

Les développeurs .NET rencontrent souvent des défis lorsqu'ils traitent des fichiers CSV contenant des virgules intégrées ou des caractères spéciaux. IronXL fournit des fonctionnalités avancées pour gérer ces complexités sans effort, améliorant la précision et l'efficacité de l'analyse des données.

Comment IronXL gère-t-il les champs entre guillemets dans les fichiers CSV ?

IronXL est conçu pour analyser avec précision les fichiers CSV avec des champs entre guillemets, garantissant que les données contenant des virgules ou d'autres caractères spéciaux sont correctement interprétées et traitées sans erreurs.

Quels sont les avantages d'utiliser IronXL pour l'analyse CSV en C# ?

IronXL offre des fonctionnalités robustes pour l'analyse des fichiers CSV, y compris le support pour les caractères spéciaux, les champs entre guillemets et les grandes quantités de données. Cela améliore la fiabilité et réduit le temps que les développeurs passent à déboguer des problèmes liés aux CSV.

IronXL peut-il gérer les fichiers CSV avec des caractères spéciaux ?

Oui, IronXL peut gérer les fichiers CSV avec divers caractères spéciaux, garantissant que toutes les données sont lues et traitées avec précision sans provoquer d'erreurs d'analyse ou de perte de données.

Qu'est-ce qui différencie IronXL des autres bibliothèques d'analyse CSV ?

IronXL se distingue par sa capacité à gérer les scénarios CSV complexes, tels que les virgules intégrées et les champs entre guillemets, avec facilité. Son API conviviale et ses fonctionnalités complètes en font un choix privilégié pour les développeurs travaillant avec des données CSV en C#.

Est-il possible de traiter de gros fichiers CSV avec IronXL ?

IronXL est optimisé pour la performance et peut traiter efficacement de gros fichiers CSV, le rendant adapté aux applications qui gèrent des ensembles de données étendus.

Comment IronXL améliore-t-il la fiabilité du traitement des données CSV ?

IronXL améliore la fiabilité en traitant avec précision les fichiers CSV avec des virgules intégrées et des caractères spéciaux, réduisant la probabilité d'erreurs pendant l'analyse des données et garantissant l'intégrité des données.

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