Test dans un environnement réel
Test en production sans filigrane.
Fonctionne partout où vous en avez besoin.
La bibliothèque Excel C#
using IronXL;
using System;
using System.Linq;
// Supported for XLSX, XLS, XLSM, XLTX, CSV and TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");
// Select worksheet at index 0
WorkSheet workSheet = workBook.WorkSheets[0];
// Get any existing worksheet
WorkSheet firstSheet = workBook.DefaultWorkSheet;
// Select a cell and return the converted value
int cellValue = workSheet["A2"].IntValue;
// Read from ranges of cells elegantly.
foreach (var cell in workSheet["A2:A10"])
{
Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
// Calculate aggregate values such as Min, Max and Sum
decimal sum = workSheet["A2:A10"].Sum();
// Linq compatible
decimal max = workSheet["A2:A10"].Max(c => c.DecimalValue);
Dans ce tutoriel pour débutants, nous allons voir commentlire les fichiers CSV en unliste en C# en utilisant leIronXL bibliothèque. Il s'agit de l'une des choses les plus élémentaires que vous devez savoir dans n'importe quel langage de programmation, car les fichiers CSV sont un moyen très courant de stocker des données et de les transférer d'un système ou d'une application à l'autre. Nous couvrirons tous les aspects, de la configuration de votre projet à l'analyse efficace des fichiers CSV.
Créer un projet de console C# dans Visual Studio.
Installez la bibliothèque CSV C# à l'aide du gestionnaire de paquets NuGet.
Chargez le fichier CSV en utilisant la méthode WorkBook.LoadCSV
.
Lire les données du fichier et remplir la liste.
Ouvrez Visual Studio : Démarrez Visual Studio sur votre ordinateur.
Créer un nouveau projet : Cliquez sur "Créer un nouveau projet". Une fenêtre s'ouvre, dans laquelle vous pouvez sélectionner le type de projet.
Sélectionnez le type de projet : Choisissez "Console App(.NET Core)le type de projet doit être défini comme "projet" pour plus de simplicité.
Nommez votre projet : Nommez votre projet CSVFileReader.
Choisissez l'emplacement : Sélectionnez un emplacement approprié sur votre appareil pour enregistrer ce projet.
Ouvrez le gestionnaire de paquets NuGet : Dans Visual Studio, allez dans le menu "Outils", puis sélectionnez "NuGet Package Manager" et choisissez "Gérer les paquets NuGet pour la solution...".
Recherchez IronXL : Cliquez sur l'onglet "Parcourir" et recherchez "IronXL.Excel"
Installer IronXL : Trouvez le paquet IronXL dans les résultats de la recherche, sélectionnez-le et cliquez sur "Installer" Assurez-vous d'accepter les accords de licence et vérifiez les changements.
Vérifiez l'installation : Après l'installation, vous devriez voir IronXL référencé dans les références de votre projet.
Maintenant, votre projet CSVFileReader est configuré avec la bibliothèque IronXL, et vous êtes prêt à commencer à lire et à traiter des fichiers CSV en C#. Cette configuration constitue la base des tâches de lecture de fichiers CSV que nous entreprendrons dans les sections suivantes de ce tutoriel.
Une fois le projet mis en place et la bibliothèque IronXL installée, concentrons-nous sur l'analyse et le traitement des fichiers CSV. Nous allons travailler dans le fichier Program.cs
, qui est automatiquement généré dans votre projet CSVFileReader.
Avant de pouvoir lire des données, nous devons savoir où se trouve notre fichier CSV. Définir une variable dans la méthode Main
pour stocker le chemin du fichier.
string filename = "csvfile.csv"; // Replace with your actual file path
string filename = "csvfile.csv"; // Replace with your actual file path
Dim filename As String = "csvfile.csv" ' Replace with your actual file path
IronXL facilite le chargement d'un fichier CSV. Utilisez la méthode WorkBook.LoadCSV
pour lire le fichier CSV dans un objet WorkBook
.
var csv = WorkBook.LoadCSV(filename);
var csv = WorkBook.LoadCSV(filename);
Dim csv = WorkBook.LoadCSV(filename)
Créez une classe qui représente la structure de données de votre fichier CSV. Par exemple, si votre fichier CSV contient des informations sur des personnes, définissez une classe Person
comme suit :
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
Public Class Person
Public Property Name() As String
Public Property Age() As Integer
End Class
Dans cette étape, nous allons analyser le fichier CSV et remplir une "liste"
List<Person> people = new List<Person>();
bool isFirstRow = true; // Add a flag to check for the first row
foreach (var row in csv.WorkSheets [0].Rows)
{
if (isFirstRow)
{
isFirstRow = false; // Set the flag to false after skipping the first row
continue;
}
if (row.IsEmpty) continue; // Skip empty rows
var cells = row.ToArray();
var person = new Person()
{
Name = cells [0].StringValue,
Age = int.Parse(cells [1].StringValue) // Ensure this is a numeric value
};
people.Add(person);
}
List<Person> people = new List<Person>();
bool isFirstRow = true; // Add a flag to check for the first row
foreach (var row in csv.WorkSheets [0].Rows)
{
if (isFirstRow)
{
isFirstRow = false; // Set the flag to false after skipping the first row
continue;
}
if (row.IsEmpty) continue; // Skip empty rows
var cells = row.ToArray();
var person = new Person()
{
Name = cells [0].StringValue,
Age = int.Parse(cells [1].StringValue) // Ensure this is a numeric value
};
people.Add(person);
}
Dim people As New List(Of Person)()
Dim isFirstRow As Boolean = True ' Add a flag to check for the first row
For Each row In csv.WorkSheets (0).Rows
If isFirstRow Then
isFirstRow = False ' Set the flag to false after skipping the first row
Continue For
End If
If row.IsEmpty Then
Continue For ' Skip empty rows
End If
Dim cells = row.ToArray()
Dim person As New Person() With {
.Name = cells (0).StringValue,
.Age = Integer.Parse(cells (1).StringValue)
}
people.Add(person)
Next row
Dans ce processus d'analyse, nous initialisons d'abord une Liste<Person>
pour stocker les données analysées et utiliser un indicateur booléen isFirstRow
pour sauter la ligne d'en-tête du fichier CSV. La boucle foreach
parcourt chaque ligne du fichier CSV. Lors de la première itération, la ligne d'en-tête est identifiée et ignorée, ce qui garantit que seules les lignes de données sont traitées. Nous vérifions ensuite que chaque ligne n'est pas vide en utilisant row.IsEmpty
. Cette étape est essentielle pour éviter les erreurs d'analyse des lignes vides.
Pour chaque ligne de données, nous convertissons la ligne en un tableau de cellules(row.ToArray()
) et crée ensuite un objet Person
avec ces données. Il est essentiel d'analyser et de convertir correctement les types de données, par exemple en convertissant la chaîne "Age" en un nombre entier. L'objet Personne
analysé est alors ajouté à notre liste people
. Cette approche garantit que seules les lignes de données valides sont traitées et stockées, ce qui permet de gérer efficacement les problèmes potentiels tels que les chaînes non numériques dans les colonnes numériques ou les lignes vides inattendues.
Après avoir analysé les données CSV dans notre List<Person>
, l'étape suivante consiste à afficher et à vérifier les données. Cela permet non seulement de s'assurer que l'analyse est réussie, mais aussi d'observer le résultat et d'effectuer un contrôle rapide de la qualité des données. Voici comment vous pouvez mettre cela en œuvre :
foreach (var person in people)
{
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
}
foreach (var person in people)
{
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
}
For Each person In people
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}")
Next person
Voici le code complet de Program.cs :
using IronXL;
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
class Program
{
static void Main(string [] args)
{
string filename = @"C:\Users\tayya\Downloads\sample_data.csv"; // Replace with your actual file path
var csv = WorkBook.LoadCSV(filename);
List<Person> people = new List<Person>();
bool isFirstRow = true; // Add a flag to check for the first row
foreach (var row in csv.WorkSheets [0].Rows)
{
if (isFirstRow)
{
isFirstRow = false; // Set the flag to false after skipping the first row
continue;
}
if (row.IsEmpty) continue; // Skip empty rows
var cells = row.ToArray();
var person = new Person()
{
Name = cells [0].StringValue,
Age = int.Parse(cells [1].StringValue) // Ensure this is a numeric value
};
people.Add(person);
}
foreach (var person in people)
{
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
}
}
}
using IronXL;
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
class Program
{
static void Main(string [] args)
{
string filename = @"C:\Users\tayya\Downloads\sample_data.csv"; // Replace with your actual file path
var csv = WorkBook.LoadCSV(filename);
List<Person> people = new List<Person>();
bool isFirstRow = true; // Add a flag to check for the first row
foreach (var row in csv.WorkSheets [0].Rows)
{
if (isFirstRow)
{
isFirstRow = false; // Set the flag to false after skipping the first row
continue;
}
if (row.IsEmpty) continue; // Skip empty rows
var cells = row.ToArray();
var person = new Person()
{
Name = cells [0].StringValue,
Age = int.Parse(cells [1].StringValue) // Ensure this is a numeric value
};
people.Add(person);
}
foreach (var person in people)
{
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
}
}
}
Imports IronXL
Public Class Person
Public Property Name() As String
Public Property Age() As Integer
End Class
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim filename As String = "C:\Users\tayya\Downloads\sample_data.csv" ' Replace with your actual file path
Dim csv = WorkBook.LoadCSV(filename)
Dim people As New List(Of Person)()
Dim isFirstRow As Boolean = True ' Add a flag to check for the first row
For Each row In csv.WorkSheets (0).Rows
If isFirstRow Then
isFirstRow = False ' Set the flag to false after skipping the first row
Continue For
End If
If row.IsEmpty Then
Continue For ' Skip empty rows
End If
Dim cells = row.ToArray()
Dim person As New Person() With {
.Name = cells (0).StringValue,
.Age = Integer.Parse(cells (1).StringValue)
}
people.Add(person)
Next row
For Each person In people
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}")
Next person
End Sub
End Class
Lorsque vous exécutez le fichier, il affiche les données de la liste dans la console :
Lorsque l'on traite différents types de données dans un fichier CSV, il est important d'adapter la logique d'analyse au type spécifique de chaque colonne de données. Dans l'exemple de la classe Person
, alors que le Name
est une chaîne de caractères et peut être directement assigné en utilisant StringValue
, les champs numériques comme Age
nécessitent une conversion de chaîne en entier en utilisant Int32.Parse
ou Convert.ToInt32
. Ceci est essentiel pour éviter les erreurs de correspondance de type.
Pour les types de données plus complexes, comme les dates, utilisez DateTime.Parse
pour convertir les représentations de chaînes de caractères des dates en objets DateTime
. Il est important de connaître le format de date utilisé dans votre fichier CSV et de veiller à ce qu'il corresponde au format attendu dans votre code. Des formats de date incohérents peuvent entraîner des erreurs d'analyse ou une interprétation incorrecte des données.
Vous venez d'apprendre à lire, analyser et afficher les données d'un fichier CSV à l'aide d'IronXL en C#. Cette approche peut être utilisée pour différents types de structures de données et de formats de fichiers. Il s'agit donc d'une compétence globalement utile pour tous les développeurs qui choisissent C# comme langage principal.
IronXL offre uneessai gratuit pour que les utilisateurs puissent expérimenter ses fonctionnalités. Une fois la période d'essai terminée, la licence pour IronXL commence au prix de $749.
Gardez à l'esprit que les exceptions et les cas limites doivent être traités pour écrire un code plus robuste, en particulier lors de la gestion de différents types de données et de l'utilisation de fichiers volumineux. Continuez à expérimenter et à explorer d'autres fonctionnalités d'IronXL pour améliorer le traitement de vos données en C#. Bon codage!
PM > Install-Package IronXL.Excel
Install-Package IronXL.Excel
Vous avez une question ? Prendre contact avec notre équipe de développement.
Vous voulez déployer IronXL dans un projet réel GRATUITEMENT ?
Votre clé d'essai devrait se trouver dans l'e-mail.
Si ce n'est pas le cas, veuillez contacter
support@ironsoftware.com
Commencez GRATUITEMENT
Aucune carte de crédit n'est requise
Test en production sans filigrane.
Fonctionne partout où vous en avez besoin.
Obtenez 30 jours de produit entièrement fonctionnel.
Il est opérationnel en quelques minutes.
Accès complet à notre équipe d'ingénieurs pendant la période d'essai du produit
Aucune carte de crédit ou création de compte n'est nécessaire
Votre clé d'essai devrait se trouver dans l'e-mail.
Si ce n'est pas le cas, veuillez contacter
support@ironsoftware.com
Commencez GRATUITEMENT
Aucune carte de crédit n'est requise
Test en production sans filigrane.
Fonctionne partout où vous en avez besoin.
Obtenez 30 jours de produit entièrement fonctionnel.
Il est opérationnel en quelques minutes.
Accès complet à notre équipe d'ingénieurs pendant la période d'essai du produit
Licences de 9. Vous avez une question ? Prendre contact.
Produit entièrement fonctionnel, obtenez la clé instantanément
PM > Install-Package IronXL.Excel
9 produits de l'API .NET pour vos documents de bureau