Comment importer des fichiers Excel dans C# ;
En tant que développeurs, nous avons souvent besoin d'importer des données à partir de fichiers Excel et de les utiliser pour répondre aux exigences de nos applications et de la gestion des données. Sans nécessiter de nombreuses lignes de code, IronXL nous offre un moyen facile d'importer exactement les données dont nous avons besoin directement dans un projet C#, puis de les manipuler par programme.
Comment importer des fichiers Excel en C#
- Télécharger et installer la bibliothèque C# pour l'importation de fichiers Excel
- Préparer les fichiers Excel à importer
- Utiliser le
Chargement
méthode d'importation d'une feuille de calcul - Modifier le fichier Excel chargé à l'aide d'API intuitives
- Exporter le fichier Excel édité sous différents types
Étape 1
1. Importer des données avec la bibliothèque IronXL
Importez des données à l'aide des fonctions fournies par la bibliothèque Excel IronXL, que nous utiliserons dans ce tutoriel. Le logiciel est disponible gratuitement pour le développement.
Installer dans votreProjet C# via le téléchargement de DLL ou navigueren utilisant le paquet NuGet.
Install-Package IronXL.Excel
Comment faire Tutoriel
2. Feuille de travail Access pour le projet
Pour les besoins de notre projet d'aujourd'hui, nous allons importer des données Excel dans notre application C#, à l'aide du logiciel IronXL installé à l'étape 1.
Pour l'étape 2, nous allons charger notre WorkBook Excel dans notre projet CSharp en utilisant la fonction WorkBook.Load()
fonction d'IronXL. Nous transmettons le chemin d'accès du classeur Excel en tant que paramètre de type chaîne dans cette fonction, comme ceci :
//load Excel file
WorkBook wb = WorkBook.Load("Path");
//load Excel file
WorkBook wb = WorkBook.Load("Path");
'load Excel file
Dim wb As WorkBook = WorkBook.Load("Path")
Le fichier Excel du chemin spécifié sera chargé dans wb
.
Ensuite, nous devons accéder à une feuille de travail spécifique du fichier Excel dont les données seront importées dans le projet. Pour ce faire, nous pouvons utiliser la fonction GetWorkSheet()
fonction d'IronXL. Nous passerons le nom de la feuille comme paramètre de chaîne dans cette fonction pour spécifier la feuille de WorkBook à importer.
//specify sheet name of Excel WorkBook
WorkSheet ws = wb.GetWorkSheet("SheetName");
//specify sheet name of Excel WorkBook
WorkSheet ws = wb.GetWorkSheet("SheetName");
'specify sheet name of Excel WorkBook
Dim ws As WorkSheet = wb.GetWorkSheet("SheetName")
La feuille de travail sera importée sous le nom de ws
, et wb
est le livre de travail que nous avons défini dans l'exemple de code ci-dessus.
Il existe également d'autres façons d'importer une feuille de travail Excel dans le projet.
/**
Import WorkSheet
anchor-access-worksheet-for-project
**/
//by sheet indexing
WorkBook.WorkSheets [SheetIndex];
//get default WorkSheet
WorkBook.DefaultWorkSheet;
//get first WorkSheet
WorkBook.WorkSheets.First();
//for the first or default sheet:
WorkBook.WorkSheets.FirstOrDefault();
/**
Import WorkSheet
anchor-access-worksheet-for-project
**/
//by sheet indexing
WorkBook.WorkSheets [SheetIndex];
//get default WorkSheet
WorkBook.DefaultWorkSheet;
//get first WorkSheet
WorkBook.WorkSheets.First();
//for the first or default sheet:
WorkBook.WorkSheets.FirstOrDefault();
'''
'''Import WorkSheet
'''anchor-access-worksheet-for-project
'''*
'by sheet indexing
WorkBook.WorkSheets (SheetIndex)
'get default WorkSheet
WorkBook.DefaultWorkSheet
'get first WorkSheet
WorkBook.WorkSheets.First()
'for the first or default sheet:
WorkBook.WorkSheets.FirstOrDefault()
Désormais, nous pouvons facilement importer n'importe quel type de données à partir des fichiers Excel spécifiés. Voyons tous les aspects possibles que nous utilisons pour importer des données de fichiers Excel dans notre projet.
3. Importer des données Excel dans C# ;
Il s'agit de l'aspect fondamental de l'importation de données d'un fichier Excel dans notre projet.
À cette fin, nous pouvons utiliser un système d'adressage des cellules pour spécifier les données cellulaires à importer. Il renvoie la valeur d'une adresse de cellule spécifique du fichier Excel.
WorkSheet ["Cell Address"];
WorkSheet ["Cell Address"];
WorkSheet ("Cell Address")
Nous pouvons également importer des données de cellules à partir de fichiers Excel en utilisant l'index des lignes et des colonnes. Cette ligne de code renvoie la valeur de l'index de ligne et de colonne spécifié.
WorkSheet.Rows [RowIndex].Columns [ColumnIndex]
WorkSheet.Rows [RowIndex].Columns [ColumnIndex]
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'WorkSheet.Rows [RowIndex].Columns [ColumnIndex]
Si nous voulons assigner des valeurs de cellules importées à des variables, nous pouvons utiliser ce code.
/**
Import Data by Cell Address
anchor-import-excel-data-in-c-num
**/
//by cell addressing
string val = WorkSheet ["Cell Address"].ToString();
//by row and column indexing
string val = WorkSheet.Rows [RowIndex].Columns [ColumnIndex].Value.ToString();
/**
Import Data by Cell Address
anchor-import-excel-data-in-c-num
**/
//by cell addressing
string val = WorkSheet ["Cell Address"].ToString();
//by row and column indexing
string val = WorkSheet.Rows [RowIndex].Columns [ColumnIndex].Value.ToString();
'''
'''Import Data by Cell Address
'''anchor-import-excel-data-in-c-num
'''*
'by cell addressing
Dim val As String = WorkSheet ("Cell Address").ToString()
'by row and column indexing
Dim val As String = WorkSheet.Rows (RowIndex).Columns (ColumnIndex).Value.ToString()
Dans les exemples ci-dessus, l'index des lignes et des colonnes commence à 0.
4. Importer des données Excel d'une plage spécifique
Si nous voulons importer des données dans une plage spécifique à partir d'un classeur Excel, nous pouvons facilement le faire en utilisant la fonction range
. Pour définir la plage, nous devons décrire l'adresse de la cellule de départ et celle de la cellule d'arrivée. Il renvoie ainsi toutes les valeurs des cellules qui se trouvent dans la plage spécifiée.
WorkSheet ["starting Cell Address : Ending Cell Address"];
WorkSheet ["starting Cell Address : Ending Cell Address"];
WorkSheet ("starting Cell Address : Ending Cell Address")
Pour en savoir plus sur la collaboration avecdans les fichiers Excel consultez les exemples de code fournis.
/**
Import Data by Range
anchor-import-excel-data-of-specific-range
**/
using IronXL;
static void Main(string [] args)
{
//import Excel WorkBook
WorkBook wb = WorkBook.Load("sample.xlsx");
//specify WorkSheet
WorkSheet ws = wb.GetWorkSheet("Sheet1");
//import data of specific cell
string val = ws ["A4"].Value.ToString();
Console.WriteLine("Import Value of A4 Cell address: {0}",val);
Console.WriteLine("import Values in Range From B3 To B9 :\n");
//import data in specific range
foreach (var item in ws ["B3:B9"])
{
Console.WriteLine(item.Value.ToString());
}
Console.ReadKey();
}
/**
Import Data by Range
anchor-import-excel-data-of-specific-range
**/
using IronXL;
static void Main(string [] args)
{
//import Excel WorkBook
WorkBook wb = WorkBook.Load("sample.xlsx");
//specify WorkSheet
WorkSheet ws = wb.GetWorkSheet("Sheet1");
//import data of specific cell
string val = ws ["A4"].Value.ToString();
Console.WriteLine("Import Value of A4 Cell address: {0}",val);
Console.WriteLine("import Values in Range From B3 To B9 :\n");
//import data in specific range
foreach (var item in ws ["B3:B9"])
{
Console.WriteLine(item.Value.ToString());
}
Console.ReadKey();
}
'''
'''Import Data by Range
'''anchor-import-excel-data-of-specific-range
'''*
Imports Microsoft.VisualBasic
Imports IronXL
Shared Sub Main(ByVal args() As String)
'import Excel WorkBook
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
'specify WorkSheet
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
'import data of specific cell
Dim val As String = ws ("A4").Value.ToString()
Console.WriteLine("Import Value of A4 Cell address: {0}",val)
Console.WriteLine("import Values in Range From B3 To B9 :" & vbLf)
'import data in specific range
For Each item In ws ("B3:B9")
Console.WriteLine(item.Value.ToString())
Next item
Console.ReadKey()
End Sub
Le code ci-dessus affiche la sortie suivante :
Avec les valeurs du fichier Excel sample.xlsx
comme :
5. Importer des données Excel à l'aide de fonctions d'agrégation
Nous pouvons également appliquer des fonctions d'agrégation à des fichiers Excel et importer les données résultant de ces fonctions d'agrégation. Voici quelques exemples des différentes fonctions et de leur utilisation.
Somme()
//to find the sum of specific cell range
WorkSheet ["Starting Cell Address : Ending Cell Address"].Sum();
//to find the sum of specific cell range
WorkSheet ["Starting Cell Address : Ending Cell Address"].Sum();
'to find the sum of specific cell range
WorkSheet ("Starting Cell Address : Ending Cell Address").Sum()
- moyenne()`
//to find the average of specific cell range
WorkSheet ["Starting Cell Address : Ending Cell Address"].Avg()
//to find the average of specific cell range
WorkSheet ["Starting Cell Address : Ending Cell Address"].Avg()
'to find the average of specific cell range
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'WorkSheet ["Starting Cell Address : Ending Cell Address"].Avg()
Min()
//to find the Min In specific cell range
WorkSheet ["Starting Cell Address : Ending Cell Address"].Min()
//to find the Min In specific cell range
WorkSheet ["Starting Cell Address : Ending Cell Address"].Min()
'to find the Min In specific cell range
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'WorkSheet ["Starting Cell Address : Ending Cell Address"].Min()
Max()
//to find the Max in specific cell range
WorkSheet ["Starting Cell Address : Ending Cell Address"].Max()
//to find the Max in specific cell range
WorkSheet ["Starting Cell Address : Ending Cell Address"].Max()
'to find the Max in specific cell range
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'WorkSheet ["Starting Cell Address : Ending Cell Address"].Max()
Vous pouvez en savoir plus sur la collaboration avecfonctions d'agrégation dans Excel pour C# et en savoir plus sur les différentes méthodes d'extraction des données.
Voyons un exemple d'importation de données d'un fichier Excel en appliquant ces fonctions.
/**
Import Data by Aggregate Function
anchor-import-excel-data-by-aggregate-functions
**/
using IronXL;
static void Main(string [] args)
{
//Import Excel file
WorkBook wb = WorkBook.Load("sample.xlsx");
//Specify WorkSheet
WorkSheet ws = wb.GetWorkSheet("Sheet1");
//Import Excel file data by applying aggregate functions
decimal Sum = ws ["D2:D9"].Sum();
decimal Avg = ws ["D2:D9"].Avg();
decimal Min = ws ["D2:D9"].Min();
decimal Max = ws ["D2:D9"].Max();
Console.WriteLine("Sum From D2 To D9: {0}", Sum);
Console.WriteLine("Avg From D2 To D9: {0}", Avg);
Console.WriteLine("Min From D2 To D9: {0}", Min);
Console.WriteLine("Max From D2 To D9: {0}", Max);
Console.ReadKey();
}
/**
Import Data by Aggregate Function
anchor-import-excel-data-by-aggregate-functions
**/
using IronXL;
static void Main(string [] args)
{
//Import Excel file
WorkBook wb = WorkBook.Load("sample.xlsx");
//Specify WorkSheet
WorkSheet ws = wb.GetWorkSheet("Sheet1");
//Import Excel file data by applying aggregate functions
decimal Sum = ws ["D2:D9"].Sum();
decimal Avg = ws ["D2:D9"].Avg();
decimal Min = ws ["D2:D9"].Min();
decimal Max = ws ["D2:D9"].Max();
Console.WriteLine("Sum From D2 To D9: {0}", Sum);
Console.WriteLine("Avg From D2 To D9: {0}", Avg);
Console.WriteLine("Min From D2 To D9: {0}", Min);
Console.WriteLine("Max From D2 To D9: {0}", Max);
Console.ReadKey();
}
'''
'''Import Data by Aggregate Function
'''anchor-import-excel-data-by-aggregate-functions
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
'Import Excel file
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
'Specify WorkSheet
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
'Import Excel file data by applying aggregate functions
Dim Sum As Decimal = ws ("D2:D9").Sum()
Dim Avg As Decimal = ws ("D2:D9").Avg()
Dim Min As Decimal = ws ("D2:D9").Min()
Dim Max As Decimal = ws ("D2:D9").Max()
Console.WriteLine("Sum From D2 To D9: {0}", Sum)
Console.WriteLine("Avg From D2 To D9: {0}", Avg)
Console.WriteLine("Min From D2 To D9: {0}", Min)
Console.WriteLine("Max From D2 To D9: {0}", Max)
Console.ReadKey()
End Sub
Le code ci-dessus nous donne ce résultat :
Notre fichier sample.xlsx
contiendra ces valeurs :
6. Importer des données complètes d'un fichier Excel
Si nous voulons importer des données complètes d'un fichier Excel dans notre projet CSharp, nous pouvons d'abord analyser notre WorkBook chargé en un DataSet. De cette manière, les données Excel complètes seraient importées dans le DataSet, et les feuilles de travail des fichiers Excel deviendraient des DataTables de ce DataSet. Le voici en action :
//import WorkBook into dataset
DataSet ds = WorkBook.ToDataSet();
//import WorkBook into dataset
DataSet ds = WorkBook.ToDataSet();
'import WorkBook into dataset
Dim ds As DataSet = WorkBook.ToDataSet()
De cette manière, la feuille de calcul spécifiée sera importée dans un ensemble de données que nous pourrons utiliser en fonction de nos besoins.
Souvent, la première colonne d'un fichier Excel est utilisée comme ColumnName. Dans ce cas, nous devons faire en sorte que la première colonne soit DataTable ColumnName. Pour ce faire, nous définissons le paramètre booléen de ToDataSet()
fonction d'IronXL comme suit :
ToDataSet(true);
ToDataSet(true);
ToDataSet(True)
Cela fera de la première colonne du fichier Excel un DataTable ColumnName.
Voyons un exemple complet d'importation de données Excel dans un Dataset et d'utilisation de la première colonne d'une feuille de calcul Excel comme DataTable ColumnName :
/**
Import to Dataset
anchor-import-complete-excel-file-data
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
DataSet ds = new DataSet();
ds = wb.ToDataSet(true);
Console.WriteLine("Excel file data imported to dataset successfully.");
Console.ReadKey();
}
/**
Import to Dataset
anchor-import-complete-excel-file-data
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
DataSet ds = new DataSet();
ds = wb.ToDataSet(true);
Console.WriteLine("Excel file data imported to dataset successfully.");
Console.ReadKey();
}
'''
'''Import to Dataset
'''anchor-import-complete-excel-file-data
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
Dim ds As New DataSet()
ds = wb.ToDataSet(True)
Console.WriteLine("Excel file data imported to dataset successfully.")
Console.ReadKey()
End Sub
Travailler avecEnsemble de données Excel et table de données peuvent être compliquées, mais nous avons plus d'exemples disponibles pour incorporer des données de fichiers dans votre projet C#.
Accès rapide à la bibliothèque
Explorer la référence IronXL
Pour en savoir plus sur l'extraction de données Excel via des cellules, des plages, des ensembles de données et des tables de données, consultez notre documentation complète API Reference for IronXL.
Explorer la référence IronXL