Test dans un environnement réel
Test en production sans filigrane.
Fonctionne partout où vous en avez besoin.
Bienvenue dans ce tutoriel pour débutants sur l'importation de fichiers CSV(valeurs séparées par des virgules) dans un fichierTableau de données en C# à l'aide deIronXL. Ce guide vous fournira une approche facile à suivre, garantissant que même si vous êtes novice en matière de C#, vous trouverez ce processus simple. Nous couvrirons toutes les étapes, de la mise en place de l'environnement à l'écriture du code source. À la fin de ce tutoriel, vous aurez bien compris comment convertir des données CSV en une table de données, gérer les colonnes de la table de données et traiter divers aspects des documents CSV en C# à l'aide d'un lecteur var et d'une chaîne de connexion.
Avant d'entrer dans le vif du sujet, assurez-vous d'avoir.. :
Un fichier CSV(Fichier de valeurs séparées par des virgules) est un type de fichier texte brut qui utilise une structure spécifique pour organiser les données tabulaires. Il s'agit d'un format courant pour l'échange de données, car le CSV est simple, compact et fonctionne avec de nombreuses plateformes. Dans un fichier CSV, les données sont séparées par des virgules, et chaque nouvelle ligne représente une nouvelle ligne, les en-têtes de colonne étant souvent présents dans la première ligne, int i.
Une DataTable fait partie de la bibliothèque ADO.NET en C# et représente une table unique de données en mémoire. Il comprend des lignes et des colonnes et chaque colonne peut être d'un type de données différent. Les tableaux de données sont très flexibles et peuvent représenter les données dans un format structuré, ce qui les rend idéaux pour traiter les données des fichiers CSV.
Ouvrez Visual Studio.
Sélectionnez Fichier > Nouveau > Projet.
IronXL est une bibliothèque puissante qui vous permet detravailler avec Excel et des fichiers CSV en C#. Pour l'utiliser, vous devez l'installer via le gestionnaire de paquets NuGet. Dans Visual Studio :
Allez dans Outils > NuGet Package Manager > Gestion des paquets NuGet pour la solution.
Recherchez IronXL.Excel.
using IronXL;
using System.Data;
using IronXL;
using System.Data;
Imports IronXL
Imports System.Data
Ces déclarations utilisant incluent les espaces de noms nécessaires à notre tâche.
Définir une classe, CsvToDataTable, avec une méthode statique ImportCsvToDataTable. Cette méthode est chargée de convertir le fichier CSV en Tableau de données.
public class CsvToDataTable
{
public static DataTable ImportCsvToDataTable(string filePath)
{
// Code snippet to import CSV will be placed here
}
}
public class CsvToDataTable
{
public static DataTable ImportCsvToDataTable(string filePath)
{
// Code snippet to import CSV will be placed here
}
}
Public Class CsvToDataTable
Public Shared Function ImportCsvToDataTable(ByVal filePath As String) As DataTable
' Code snippet to import CSV will be placed here
End Function
End Class
Dans la méthode ImportCsvToDataTable, commencez par charger le fichier CSV. IronXL fournit une méthode directe pour ce faire :
// Load the CSV file
WorkBook workbook = WorkBook.LoadCSV(filePath);
// Load the CSV file
WorkBook workbook = WorkBook.LoadCSV(filePath);
' Load the CSV file
Dim workbook As WorkBook = WorkBook.LoadCSV(filePath)
WorkBook.LoadCSV est une méthode d'IronXL pour charger des fichiers CSV. Ici, filePath est le chemin d'accès à votre fichier CSV.
Convertir les données CSV chargées en Tableau de données. Cette étape est la plus importante car elle transforme les données dans un format qui peut être facilement manipulé et affiché dans une application C#.
// Get the first worksheet
WorkSheet sheet = workbook.DefaultWorkSheet;
// Convert CSV worksheet to DataTable dt
DataTable dataTable = sheet.ToDataTable();
return dataTable;
// Get the first worksheet
WorkSheet sheet = workbook.DefaultWorkSheet;
// Convert CSV worksheet to DataTable dt
DataTable dataTable = sheet.ToDataTable();
return dataTable;
' Get the first worksheet
Dim sheet As WorkSheet = workbook.DefaultWorkSheet
' Convert CSV worksheet to DataTable dt
Dim dataTable As DataTable = sheet.ToDataTable()
Return dataTable
Cet extrait convertit les données CSV en Tableau de données. DefaultWorkSheet récupère la première feuille de travail du classeur, ce qui équivaut à l'ensemble des données CSV dans le cas d'un fichier CSV. La méthode ToDataTable est une fonctionnalité puissante d'IronXL qui permet de mapper efficacement les données CSV à une structure DataTable, y compris une ligne d'en-tête de chaîne de colonnes si elle est présente dans la première ligne du fichier CSV.
Utilisez maintenant la méthode ImportCsvToDataTable dans votre application. Par exemple, vous pouvez appeler cette méthode au démarrage de l'application ou lorsque l'utilisateur télécharge un fichier CSV.
// Usage
string csvFilePath = "csvfile.csv";
DataTable dataTable = CsvToDataTable.ImportCsvToDataTable(csvFilePath);
// Usage
string csvFilePath = "csvfile.csv";
DataTable dataTable = CsvToDataTable.ImportCsvToDataTable(csvFilePath);
' Usage
Dim csvFilePath As String = "csvfile.csv"
Dim dataTable As DataTable = CsvToDataTable.ImportCsvToDataTable(csvFilePath)
Cet extrait de code montre comment appeler la méthode ImportCsvToDataTable. Remplacez "csvfile.csv " par le chemin d'accès réel de votre fichier CSV.
Une fois que vous avez la Table de données, vous pouvez effectuer diverses opérations telles que l'affichage des données dans une interface utilisateur, le filtrage ou le traitement des données. Voici quelques exemples :
foreach (DataRow row in dataTable.Rows)
{
foreach (var item in row.ItemArray)
{
Console.Write($"{item} ");
}
Console.WriteLine();
}
foreach (DataRow row in dataTable.Rows)
{
foreach (var item in row.ItemArray)
{
Console.Write($"{item} ");
}
Console.WriteLine();
}
For Each row As DataRow In dataTable.Rows
For Each item In row.ItemArray
Console.Write($"{item} ")
Next item
Console.WriteLine()
Next row
Ce code parcourt chaque ligne et chaque colonne du Tableau de données et imprime les données sur la console.
Vous pouvez utiliser LINQ pour filtrer les données de la table de données. Par exemple, si vous souhaitez sélectionner les lignes pour lesquelles une colonne spécifique remplit une condition :
var filteredRows = dataTable.AsEnumerable()
.Where(row => row.Field<string>("ColumnName") == "SomeValue");
var filteredRows = dataTable.AsEnumerable()
.Where(row => row.Field<string>("ColumnName") == "SomeValue");
Dim filteredRows = dataTable.AsEnumerable().Where(Function(row) row.Field(Of String)("ColumnName") = "SomeValue")
Remplacez "ColumnName " et "SomeValue " par le nom de la colonne et la valeur que vous souhaitez filtrer.
Voici le code source complet que vous pouvez utiliser dans votre projet :
using IronXL;
using System;
using System.Data;
using System.IO;
public class CsvToDataTable
{
public static DataTable ImportCsvToDataTable(string filePath)
{
// Check if the file exists
if (!File.Exists(filePath))
{
throw new FileNotFoundException($"The file at {filePath} was not found.");
}
// Load the CSV file
WorkBook workbook = WorkBook.LoadCSV(filePath, listDelimiter: ";");
// Get the first worksheet
WorkSheet sheet = workbook.DefaultWorkSheet;
// Convert the worksheet to DataTable
DataTable dataTable = sheet.ToDataTable();
return dataTable;
}
}
class Program
{
static void Main(string [] args)
{
// Usage
try
{
string strfilepath = "sample_data.csv"; // CSV file path
DataTable dataTable = CsvToDataTable.ImportCsvToDataTable(strfilepath);
foreach (DataRow row in dataTable.Rows)
{
foreach (var item in row.ItemArray)
{
Console.Write($"{item} ");
}
Console.WriteLine();
}
}
catch (Exception ex)
{
Console.WriteLine($"An error occurred: {ex.Message}");
}
}
}
using IronXL;
using System;
using System.Data;
using System.IO;
public class CsvToDataTable
{
public static DataTable ImportCsvToDataTable(string filePath)
{
// Check if the file exists
if (!File.Exists(filePath))
{
throw new FileNotFoundException($"The file at {filePath} was not found.");
}
// Load the CSV file
WorkBook workbook = WorkBook.LoadCSV(filePath, listDelimiter: ";");
// Get the first worksheet
WorkSheet sheet = workbook.DefaultWorkSheet;
// Convert the worksheet to DataTable
DataTable dataTable = sheet.ToDataTable();
return dataTable;
}
}
class Program
{
static void Main(string [] args)
{
// Usage
try
{
string strfilepath = "sample_data.csv"; // CSV file path
DataTable dataTable = CsvToDataTable.ImportCsvToDataTable(strfilepath);
foreach (DataRow row in dataTable.Rows)
{
foreach (var item in row.ItemArray)
{
Console.Write($"{item} ");
}
Console.WriteLine();
}
}
catch (Exception ex)
{
Console.WriteLine($"An error occurred: {ex.Message}");
}
}
}
Imports IronXL
Imports System
Imports System.Data
Imports System.IO
Public Class CsvToDataTable
Public Shared Function ImportCsvToDataTable(ByVal filePath As String) As DataTable
' Check if the file exists
If Not File.Exists(filePath) Then
Throw New FileNotFoundException($"The file at {filePath} was not found.")
End If
' Load the CSV file
Dim workbook As WorkBook = WorkBook.LoadCSV(filePath, listDelimiter:= ";")
' Get the first worksheet
Dim sheet As WorkSheet = workbook.DefaultWorkSheet
' Convert the worksheet to DataTable
Dim dataTable As DataTable = sheet.ToDataTable()
Return dataTable
End Function
End Class
Friend Class Program
Shared Sub Main(ByVal args() As String)
' Usage
Try
Dim strfilepath As String = "sample_data.csv" ' CSV file path
Dim dataTable As DataTable = CsvToDataTable.ImportCsvToDataTable(strfilepath)
For Each row As DataRow In dataTable.Rows
For Each item In row.ItemArray
Console.Write($"{item} ")
Next item
Console.WriteLine()
Next row
Catch ex As Exception
Console.WriteLine($"An error occurred: {ex.Message}")
End Try
End Sub
End Class
Vous pouvez utiliser ce code dans le fichier Program.cs. N'oubliez pas d'ajouter la licence d'IronXL si vous travaillez dans un environnement de production.
Une fois le code exécuté, il chargera le fichier CSV et importera ses données dans le tableau de données. Ensuite, il affichera le contenu des colonnes de la table de données dans la console. Il permet de vérifier que les données sont correctement importées dans le tableau de données.
Dans le monde réel, le format et la structure des fichiers CSV peuvent varier considérablement. Il est important de gérer ces variations pour garantir la robustesse et la polyvalence de votre application. Voyons comment gérer différents scénarios lors de l'importation de données CSV dans une table de données à l'aide d'IronXL.
Les virgules sont la valeur par défaut du délimiteur dans les fichiers CSV. Toutefois, les fichiers CSV n'utilisent pas toujours des virgules pour séparer les valeurs. Parfois, un point-virgule, une tabulation ou d'autres caractères sont utilisés comme délimiteurs. Pour gérer cela dans IronXL :
Spécifier un délimiteur personnalisé: Avant de charger le fichier CSV, vous pouvez spécifier le délimiteur de votre fichier. Par exemple, si votre fichier utilise un point-virgule(;)vous pouvez le paramétrer comme suit :
WorkBook workbook = WorkBook.LoadCSV(filePath, listDelimiter: ";");
WorkBook workbook = WorkBook.LoadCSV(filePath, listDelimiter: ";");
Dim workbook As WorkBook = WorkBook.LoadCSV(filePath, listDelimiter:= ";")
Détection dynamique du délimiteur: Vous pouvez également écrire une fonction qui détecte le délimiteur de manière dynamique. Pour ce faire, il suffit d'analyser les premières lignes du fichier et de déterminer le caractère spécial le plus fréquent.
Lorsqu'il s'agit de fichiers CSV volumineux, il est important de tenir compte de l'utilisation de la mémoire et des performances. IronXL offre des moyens efficaces de traiter les fichiers volumineux sans charger l'intégralité du fichier en mémoire en une seule fois. Vous pouvez lire le fichier par morceaux ou utiliser les API de lecture en continu fournies par IronXL pour gérer efficacement l'utilisation de la mémoire.
L'importation de données CSV dans une table de données à l'aide d'IronXL en C# est simple. Il améliore les capacités de manipulation de données de votre application, en vous permettant de traiter efficacement les fichiers CSV. Grâce aux étapes décrites dans ce tutoriel, les débutants peuvent facilement intégrer cette fonctionnalité dans leurs projets C#.
IronXL propose une version d'essai gratuite pour permettre aux utilisateurs d'explorer ses fonctionnalités. Pour ceux qui recherchent des capacités et un support plus avancés, les options de licence commencent à $749.
9 produits de l'API .NET pour vos documents de bureau