Comment écrire des fichiers CSV en .NET avec IronXL
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 :
Install-Package IronXL
dotnet add package IronXL
Install-Package IronXL
dotnet add package IronXL
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", ",");
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", ",");
Imports IronXL
' Create a new workbook and worksheet
Dim workBook As WorkBook = WorkBook.Create()
Dim workSheet As 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.5
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, en 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 classeurs Excel existants ou exportiez des données à partir d'une base de données. Vous référencez les cellules en utilisant la notation Excel standard (A1, B2) ou des entiers de ligne et de colonne 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 n'importe quelle chaîne 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");
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");
Imports IronXL
Dim workBook As WorkBook = WorkBook.Create()
Dim workSheet As 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", vbTab)
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 ?
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", ",");
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", ",");
Imports IronXL
' Load an Excel file with formulas and formatting
Dim workBook As 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 module d'écriture CSV .NET avec IronXL : Figure 2 - Fichiers CSV
Voici un exemple de comparaison entre une feuille Excel et le fichier CSV correspondant :
Comment créer un module d'écriture CSV .NET avec IronXL : Figure 3 - Exemple de résultat
Comment exporter un DataTable au format CSV ?
Pour les applications basées sur des bases de données, IronXL simplifie l'exportation des données DataTable . L'exemple suivant lit un DataTable à partir d'une source de données fictive et l'écrit au format 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", ";");
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", ";");
Imports System.Data
Imports IronXL
' Simulate a DataTable from a database query
Dim dataTable As DataTable = GetSalesData()
Dim workBook As WorkBook = WorkBook.Create()
Dim workSheet As WorkSheet = workBook.CreateWorkSheet("sales")
' Write column headers from DataTable schema
For col As Integer = 0 To dataTable.Columns.Count - 1
workSheet.SetCellValue(0, col, dataTable.Columns(col).ColumnName)
Next
' Write data rows
Dim row As Integer = 1
For Each dataRow As DataRow In dataTable.Rows
For col As Integer = 0 To dataTable.Columns.Count - 1
workSheet.SetCellValue(row, col, If(dataRow(col)?.ToString(), String.Empty))
Next
row += 1
Next
' Export with semicolon delimiter for European compatibility
workBook.SaveAsCsv("sales_data.csv", ";")
Lors de l'importation à partir d'un DataTable, chaque ligne de la collection dataTable.Rows devient une nouvelle ligne de 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 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);
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);
Imports System.Globalization
Imports System.IO
Imports CsvHelper
Using writer As New StreamWriter("employees.csv")
Using csv As New CsvWriter(writer, CultureInfo.InvariantCulture)
csv.WriteRecords(employees)
End Using
End Using
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", ",");
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", ",");
Imports IronXL
Dim workBook As WorkBook = WorkBook.Create()
Dim workSheet As WorkSheet = workBook.CreateWorkSheet("employees")
Dim rowIndex As Integer = 1
For Each emp In employees
workSheet($"A{rowIndex}").Value = emp.Name
workSheet($"B{rowIndex}").Value = emp.Salary
workSheet($"C{rowIndex}").Value = emp.StartDate
rowIndex += 1
Next
workBook.SaveAsCsv("employees.csv", ",")
| Caractéristique | CsvHelper | IronXL |
|---|---|---|
| Écriture CSV de base | Oui | Oui |
| Conversion Excel vers CSV | Non | Oui |
| Évaluation de la formule | Non | Oui |
| Gestion de plusieurs feuilles | Non | Oui |
| Préservation du type de données | Manuel | Automatique |
| Prise en charge des formats Excel (XLSX, XLS, XLSM) | Non | Oui |
| Aucune suite Microsoft Office requise | Oui | Oui |
| Mise en forme et styles des cellules | Non | Oui |
| Multiplateforme (prise en charge de .NET 10) | Oui | Oui |
CsvHelper gère efficacement la sérialisation simple des objets POCO. IronXL offre des fonctionnalités supplémentaires lorsque vous devez charger des fichiers Excel existants, évaluer des formules avant l'exportation ou gérer des plages de feuilles de calcul avec un contrôle précis. Si votre flux de travail implique la réception de fichiers .xlsx de la part d'utilisateurs professionnels et leur conversion en CSV pour les systèmes en aval, IronXL supprime une étape de conversion entière 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 fonctionnalités prêtes pour la production :
| Caractéristique | Description du projet | Cas d'utilisation |
|---|---|---|
| Délimiteurs personnalisés | Virgule, point-virgule, tabulation ou tout autre caractère | Compatibilité régionale |
| Options d'encodage | UTF-8, UTF-16 et encodages personnalisés | Ensembles de caractères internationaux |
| Évaluation de la formule | Calcule les formules Excel avant l'exportation | Rapports financiers, données dynamiques |
| Support multiplateforme | Windows, Linux, macOS | Déploiements dans le cloud et les conteneurs |
| Exportation multi-feuilles | Un fichier CSV par feuille de calcul | Structures complexes des classeurs |
| Conformité à la RFC 4180 | Guillemets automatiques pour les caractères spéciaux | Interopérabilité garantie |
Vous pouvez appliquer une mise en forme aux données des cellules avant l'exportation afin de contrôler l'apparence des nombres, des devises et des dates dans le fichier CSV de sortie. Pour les grands ensembles de données, traitez les données par blocs en utilisant des opérations de plage de feuilles de calcul afin de rendre 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 feuilles 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 fait référence à des données manquantes, EvaluateAll() se résout en une valeur d'erreur au lieu d'émettre silencieusement un texte vide, ce qui rend les problèmes de qualité des données visibles dès le début du processus.
Conflits de délimitation: Si vos données contiennent le caractère de délimitation (par exemple, un champ de prix contenant $1,200.00 lors de l'utilisation de la virgule comme délimiteur), IronXL entoure automatiquement la valeur de guillemets doubles conformément aux 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", ",");
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", ",");
Imports IronXL
' Load an existing CSV file into a workbook
Dim workBook As WorkBook = WorkBook.Load("sales_data.csv")
Dim workSheet As WorkSheet = workBook.DefaultWorkSheet
' Iterate over rows and process data
For Each row In workSheet.Rows
Dim product As String = row("A").ToString()
Dim quantity As Integer = row("B").IntValue
Dim price As Decimal = CType(row("C").DoubleValue, Decimal)
Console.WriteLine($"Product: {product}, Qty: {quantity}, Price: {price:C}")
Next
' 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);
}
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);
}
Imports IronXL
Dim workBook As WorkBook = WorkBook.Load("input.xlsx")
Dim workSheet As WorkSheet = workBook.DefaultWorkSheet
Dim errors As New List(Of String)()
For rowIdx As Integer = 1 To workSheet.RowCount
Dim productName As String = workSheet($"A{rowIdx}").StringValue
Dim price As Double = workSheet($"C{rowIdx}").DoubleValue
If String.IsNullOrWhiteSpace(productName) Then
errors.Add($"Row {rowIdx}: Product name is empty.")
End If
If price <= 0 Then
errors.Add($"Row {rowIdx}: Price must be greater than zero (found {price}).")
End If
Next
If errors.Count = 0 Then
workBook.SaveAsCsv("validated_output.csv", ",")
Console.WriteLine("Export complete.")
Else
For Each error As String In errors
Console.WriteLine(error)
Next
End If
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 cellulaires sur les objets RangeRow et Cell d'IronXL renvoient des valeurs fortement typées, ce qui réduit le risque d'erreurs de coercion de type silencieuse.
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 :
- Documentation IronXL : référence API complète et guides pratiques Guide de conversion CSV vers Excel : procédure détaillée de conversion de format
- Tutoriel d'exportation DataTable -- Modèles d'exportation pilotés par la base de données
- Opérations sur les plages de données dans les feuilles de calcul : traitement efficace des grands ensembles de données
- Guide de dépannage : solutions aux problèmes d'intégration courants
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.
Questions Fréquemment Posées
À quoi sert IronXL ?
IronXL est une bibliothèque .NET conçue pour travailler avec des fichiers Excel, permettant aux développeurs de créer, lire et modifier des documents Excel ainsi que de les exporter vers divers formats tels que CSV, tout en préservant les types de données et en gérant des scénarios de tableurs complexes.
Comment IronXL peut-il aider à l'écriture de CSV dans .NET ?
IronXL fournit des fonctionnalités pour exporter des classeurs Excel au format CSV, en s'assurant que les types de données sont préservés et que les scénarios de tableurs complexes sont gérés efficacement, ce qui en fait un choix idéal pour les développeurs .NET ayant besoin d'une solution robuste d'écriture de CSV.
Pourquoi les développeurs devraient-ils envisager d'utiliser IronXL pour les opérations CSV ?
Les développeurs devraient envisager d'utiliser IronXL pour sa capacité à exporter sans problème des fichiers Excel en CSV, à gérer de grands ensembles de données et à maintenir l'intégrité des types de données, offrant une solution supérieure pour les opérations CSV dans les applications .NET.
Quels sont les avantages d'utiliser IronXL pour la gestion des tableurs ?
Les avantages d'utiliser IronXL pour la gestion des tableurs incluent la manipulation facile des documents Excel, le support pour divers formats d'exportation comme CSV, et la capacité à gérer efficacement des structures de données complexes et de grands ensembles de données dans les applications .NET.
IronXL peut-il gérer de grands fichiers Excel lors de l'exportation en CSV ?
Oui, IronXL est conçu pour gérer efficacement de grands fichiers Excel, permettant aux développeurs d'exporter de grandes quantités de données en CSV sans compromettre les performances ou l'intégrité des données.
Comment IronXL assure-t-il la préservation des types de données lors de l'exportation en CSV ?
IronXL assure la préservation des types de données en convertissant précisément les données Excel au format CSV tout en maintenant les types et les structures de données d'origine, ce qui est crucial pour les applications nécessitant une gestion précise des données.
IronXL est-il adapté aux scénarios de tableurs complexes ?
IronXL convient parfaitement aux scénarios de tableurs complexes, offrant des fonctionnalités avancées pour gérer et manipuler des documents Excel complexes et garantissant que les données peuvent être exportées avec précision en CSV ou d'autres formats.



