Comment importer des fichiers Excel dans C# ;

This article was translated from English: Does it need improvement?
Translated
View the article in English

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.


É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")
VB   C#

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")
VB   C#

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()
VB   C#

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")
VB   C#

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]
VB   C#

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()
VB   C#

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")
VB   C#

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
VB   C#

Le code ci-dessus affiche la sortie suivante :

1output related to 4. Importer des données Excel d'une plage spécifique

Avec les valeurs du fichier Excel sample.xlsx comme :

1excel related to 4. Importer des données Excel d'une plage spécifique

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()
VB   C#
  • 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()
VB   C#
  • 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()
VB   C#
  • 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()
VB   C#

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
VB   C#

Le code ci-dessus nous donne ce résultat :

2output related to 5. Importer des données Excel à l'aide de fonctions d'agrégation

Notre fichier sample.xlsx contiendra ces valeurs :

2excel related to 5. Importer des données Excel à l'aide de fonctions d'agrégation

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()
VB   C#

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)
VB   C#

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
VB   C#

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
Documentation related to Accès rapide à la bibliothèque