C&num ; Analyse du fichier Excel
Lorsque nous utilisons des feuilles de calcul Excel pour la création d'applications, nous analysons souvent les résultats en fonction des données, et nous devons, dans le cadre de C#, analyser les données du fichier Excel dans le format requis pour obtenir les bons résultats. L'analyse des données dans différents formats est facilitée dans l'environnement C# par l'utilisation d'IronXL et des étapes ci-dessous.
Comment analyser un fichier Excel en C# ;
Installer la bibliothèque Excel pour traiter les fichiers Excel.
Ajoutez le fichier Excel en ouvrant l'objet
Workbook
.Choisissez la "feuille de travail" par défaut.
Lire les valeurs d'un livre de travail Excel.
- Traiter la valeur avec précision et l'afficher.
Étape 1
1. Télécharger IronXL pour Visual Studio
La première étape consiste àTélécharger IronXL pour Visual Studio ou l'installer à l'aide deNuGetces deux méthodes sont gratuites pour les projets de développement.
Install-Package IronXL.Excel
Comment faire Tutoriel
2. Charger un fichier Excel
Ensuite, vous devrez charger le fichier Excel dans votre projet C# à l'aide de la fonction WorkBook.Load()
fonction d'IronXL. Nous passons un paramètre de type chaîne pour spécifier le chemin d'accès au fichier Excel comme suit :
//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 sera chargé dans wb
. Nous pouvons maintenant ouvrir une feuille de travail spécifique.
3. Ouvrir la feuille de travail Excel
Pour ouvrir une feuille de calcul d'un fichier Excel, nous utilisons la fonction WorkBook.GetWorkSheet()
fonction. Elle nécessite un paramètre de type chaîne pour spécifier le nom de la feuille de travail à ouvrir. Nous pouvons l'utiliser comme suit :
//specify WorkSheet
WorkSheet ws = Wb.GetWorkSheet("SheetName");
//specify WorkSheet
WorkSheet ws = Wb.GetWorkSheet("SheetName");
'specify WorkSheet
Dim ws As WorkSheet = Wb.GetWorkSheet("SheetName")
wb
est le WorkBook que nous avons défini à l'étape 1.
4. Obtenir des données à partir d'un fichier Excel
Désormais, nous pouvons facilement obtenir n'importe quel type de données, de différentes manières, à partir de la feuille de calcul Excel ouverte. Dans l'exemple suivant, nous voyons comment accéder à la valeur d'une cellule spécifique et l'analyser en chaîne de caractères :
//Access the Data by Cell Addressing
string val = ws ["Cell Address"].ToString();
//Access the Data by Cell Addressing
string val = ws ["Cell Address"].ToString();
'Access the Data by Cell Addressing
Dim val As String = ws ("Cell Address").ToString()
Dans la ligne ci-dessus, ws
est la feuille de travail, qui a été définie à l'étape 2. Il s'agit de l'approche la plus simple, mais vous pouvez en savoir plus et voir différents exemples sur la façon deaccéder aux données d'un fichier Excel.
5. Analyse des données Excel en valeurs numériques
Nous allons maintenant voir comment analyser les données d'un fichier Excel.
Tout d'abord, nous examinons comment traiter des données Excel de type numérique et les analyser dans le format requis. Utilisez la liste IronXL des fonctions d'analyseur syntaxique ci-dessous pour utiliser ce qui convient à votre projet.
Type de données | Méthode | Explication |
---|---|---|
int | Feuille de travail ["CellAddress"].IntValue | Il est utilisé lorsque nous devons analyser la valeur d'une cellule Excel en `Int`. |
Int32 | Feuille de travail ["CellAddress"].Int32Value | lorsque nous devons analyser la valeur d'une cellule Excel en `Int32`. |
Int64 | Feuille de travail ["CellAddress"].Int64Value | si nous avons une valeur numérique trop grande et que nous voulons l'utiliser dans notre projet. |
flotteur | Feuille de travail ["CellAddress"].FloatValue | Il est utilisé lorsque les valeurs sont également importantes après la virgule. |
Double | Feuille de travail ["CellAddress"].DoubleValue | si nous voulons obtenir des données numériques avec plus de précision. |
Décimale | Feuille de travail ["CellAddress"].DecimalValue | Si nous avons trop de chiffres après la virgule et que nous voulons un résultat très précis. |
Voici un exemple d'utilisation de certaines de ces fonctions pour analyser les données d'un fichier Excel en C#.
/**
Parse into Numeric Values
anchor-parse-excel-data-into-numeric-values
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
//Parse Excel cell value into string
string str_val = ws ["B3"].Value.ToString();
//Parse Excel cell value into int32
Int32 int32_val = ws ["G3"].Int32Value;
//Parse Excel cell value into Decimal
decimal decimal_val = ws ["E5"].DecimalValue;
Console.WriteLine("Parse B3 Cell Value into String: {0}", str_val);
Console.WriteLine("Parse G3 Cell Value into Int32: {0}", int32_val);
Console.WriteLine("Parse E5 Cell Value into decimal: {0}", decimal_val);
Console.ReadKey();
}
/**
Parse into Numeric Values
anchor-parse-excel-data-into-numeric-values
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
//Parse Excel cell value into string
string str_val = ws ["B3"].Value.ToString();
//Parse Excel cell value into int32
Int32 int32_val = ws ["G3"].Int32Value;
//Parse Excel cell value into Decimal
decimal decimal_val = ws ["E5"].DecimalValue;
Console.WriteLine("Parse B3 Cell Value into String: {0}", str_val);
Console.WriteLine("Parse G3 Cell Value into Int32: {0}", int32_val);
Console.WriteLine("Parse E5 Cell Value into decimal: {0}", decimal_val);
Console.ReadKey();
}
'''
'''Parse into Numeric Values
'''anchor-parse-excel-data-into-numeric-values
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
'Parse Excel cell value into string
Dim str_val As String = ws ("B3").Value.ToString()
'Parse Excel cell value into int32
Dim int32_val As Int32 = ws ("G3").Int32Value
'Parse Excel cell value into Decimal
Dim decimal_val As Decimal = ws ("E5").DecimalValue
Console.WriteLine("Parse B3 Cell Value into String: {0}", str_val)
Console.WriteLine("Parse G3 Cell Value into Int32: {0}", int32_val)
Console.WriteLine("Parse E5 Cell Value into decimal: {0}", decimal_val)
Console.ReadKey()
End Sub
Ce code affichera la sortie suivante :
Et nous pouvons voir les valeurs du fichier Excel sample.xlsx
ici :
6. Analyse des données Excel en valeurs booléennes
Pour analyser les données d'un fichier Excel en données de type booléen, IronXL fournit la fonction BoolValue
. Il peut être utilisé comme suit :
/**
Parse into Boolean Values
anchor-parse-excel-data-into-boolean-values
**/
bool Val = ws ["Cell Address"].BoolValue;
/**
Parse into Boolean Values
anchor-parse-excel-data-into-boolean-values
**/
bool Val = ws ["Cell Address"].BoolValue;
'''
'''Parse into Boolean Values
'''anchor-parse-excel-data-into-boolean-values
'''*
Dim Val As Boolean = ws ("Cell Address").BoolValue
ws
est la feuille de travail telle que décrite dans l'exemple ci-dessus. La fonction ci-dessus renvoie la valeur True
ou False
. Note : Si vous voulez analyser la valeur d'une cellule en données de type booléen, assurez-vous que les valeurs de votre fichier Excel sont au format (0
, 1
) ou (True
, False
).
7. Analyse d'un fichier Excel en collections C
En utilisant IronXL, nous pouvons analyser les données d'un fichier Excel dans les types de collections CSharp suivants :
Type de données | Méthode | Explication |
---|---|---|
Tableau | Feuille de travail ["De:A"].ToArray() | Cette fonction est utilisée pour analyser les données d'un fichier Excel en tableau. Nous spécifions une plage de cellules du fichier Excel dont les données doivent être converties en tableau. |
Tableau de données | Feuille de travail.ToDataTable() | Il est utilisé pour analyser une feuille de calcul Excel complète dans DataTable et utilise les données selon nos besoins. |
DataSet | WorkBook.ToDataSet() | nous pouvons analyser un WorkBook Excel complet dans un DataSet, de cette manière, les WorkSheets du fichier Excel deviennent des DataTables du DataSet. |
Voyons un par un chaque exemple d'analyse des données d'un fichier Excel dans ces types de collections.
7.1. Analyse des données Excel en tableau
IronXL fournit un moyen simple d'analyser les données d'un fichier Excel d'une plage spécifiée dans un tableau. Pour ce faire, nous spécifions les adresses des cellules "From" et "To", dont les données seront converties en tableau. Cela peut se faire de la manière suivante :
var array = WorkSheet ["From:To"].ToArray();
var array = WorkSheet ["From:To"].ToArray();
Dim array = WorkSheet ("From:To").ToArray()
Si nous voulons accéder à un élément spécifique du tableau, nous utilisons :
string item = array [ItemIndex].Value.ToString();
string item = array [ItemIndex].Value.ToString();
Dim item As String = array (ItemIndex).Value.ToString()
Il est clair que nous pouvons facilement accéder aux éléments grâce à l'indexation. Voyons comment analyser les données d'un fichier Excel dans un tableau et en sélectionner un élément spécifique.
/**
Parse into Array
anchor-parse-excel-data-into-array
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
var array = ws ["B6:F6"].ToArray();
int item = array.Count();
string total_items = array [0].Value.ToString();
Console.WriteLine("First item in the array: {0}", item);
Console.WriteLine("Total items from B6 to F6: {0}",total_items);
Console.ReadKey();
}
/**
Parse into Array
anchor-parse-excel-data-into-array
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
var array = ws ["B6:F6"].ToArray();
int item = array.Count();
string total_items = array [0].Value.ToString();
Console.WriteLine("First item in the array: {0}", item);
Console.WriteLine("Total items from B6 to F6: {0}",total_items);
Console.ReadKey();
}
'''
'''Parse into Array
'''anchor-parse-excel-data-into-array
'''*
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 array = ws ("B6:F6").ToArray()
Dim item As Integer = array.Count()
Dim total_items As String = array (0).Value.ToString()
Console.WriteLine("First item in the array: {0}", item)
Console.WriteLine("Total items from B6 to F6: {0}",total_items)
Console.ReadKey()
End Sub
Le code ci-dessus affiche la sortie suivante :
Les valeurs de la plage du fichier Excel, sample.xlsx
, de B6
à F6
, ressemblent à ceci :
7.2. Analyse d'une feuille de calcul Excel en une base de données
La beauté d'IronXL réside dans le fait que nous pouvons facilement convertir une feuille de calcul Excel spécifique en une table de données. Pour ce faire, nous pouvons utiliser la fonction .ToDataTable()
fonction d'IronXL comme suit :
DataTable dt = WorkSheet.ToDataTable();
DataTable dt = WorkSheet.ToDataTable();
Dim dt As DataTable = WorkSheet.ToDataTable()
Il analysera la feuille de calcul Excel dans la table de données dt
. Dans ce cas, si nous voulons utiliser la première ligne du fichier Excel comme nom de colonne de la table de données, nous pouvons le définir comme tel :
DataTable dt=WorkSheet.ToDataTable(True);
DataTable dt=WorkSheet.ToDataTable(True);
Dim dt As DataTable=WorkSheet.ToDataTable([True])
Le paramètre booléen de .ToDataTable()la fonction
spécifie que la première ligne du fichier Excel devient NomColonne de la table de données. Vous pouvez approfondir votre travail avecExcelWorksheet en tant que DataTable en C#
Voici un exemple d'analyse d'une feuille de calcul Excel en tableau de données :
/**
Parse into DataTable
anchor-parse-excel-worksheet-into-datatable
**/
using IronXL;
using System.Data;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
//parse sheet1 of sample.xlsx file into DataTable.
//we set parameter true of ToDataTable() function,so first row of Excel file becomes columnname of DataTable
DataTable dt = ws.ToDataTable(true);
}
/**
Parse into DataTable
anchor-parse-excel-worksheet-into-datatable
**/
using IronXL;
using System.Data;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
//parse sheet1 of sample.xlsx file into DataTable.
//we set parameter true of ToDataTable() function,so first row of Excel file becomes columnname of DataTable
DataTable dt = ws.ToDataTable(true);
}
'''
'''Parse into DataTable
'''anchor-parse-excel-worksheet-into-datatable
'''*
Imports IronXL
Imports System.Data
Shared Sub Main(ByVal args() As String)
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
'parse sheet1 of sample.xlsx file into DataTable.
'we set parameter true of ToDataTable() function,so first row of Excel file becomes columnname of DataTable
Dim dt As DataTable = ws.ToDataTable(True)
End Sub
7.3. Analyse d'un fichier Excel dans un ensemble de données
Si nous voulons analyser un fichier Excel complet dans un DataSet, nous pouvons utiliser la fonction .ToDataSet()
fonction d'IronXL. Il peut être utilisé comme suit :
DataSet ds = WorkBook.ToDataSet();
DataSet ds = WorkBook.ToDataSet();
Dim ds As DataSet = WorkBook.ToDataSet()
Remarque : si nous transformons un fichier Excel en un ensemble de données, TOUTES les feuilles de travail du fichier Excel deviennent des tables de données de cet ensemble de données. Voyons l'exemple de l'analyse d'un fichier Excel en DataSet :
/**
Parse File into DataSet
anchor-parse-excel-file-into-dataset
**/
using IronXL;
using System.Data;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
//parse WorkBook wb into DataSet
DataSet ds = wb.ToDataSet();
//we also can get DataTable from ds which is actually WorkSheet as:
DataTable dt=ds.Tables [0];
}
/**
Parse File into DataSet
anchor-parse-excel-file-into-dataset
**/
using IronXL;
using System.Data;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
//parse WorkBook wb into DataSet
DataSet ds = wb.ToDataSet();
//we also can get DataTable from ds which is actually WorkSheet as:
DataTable dt=ds.Tables [0];
}
'''
'''Parse File into DataSet
'''anchor-parse-excel-file-into-dataset
'''*
Imports IronXL
Imports System.Data
Shared Sub Main(ByVal args() As String)
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
'parse WorkBook wb into DataSet
Dim ds As DataSet = wb.ToDataSet()
'we also can get DataTable from ds which is actually WorkSheet as:
Dim dt As DataTable=ds.Tables (0)
End Sub
Vous pouvez en savoir plus surEnsemble de données Excel SQL et de travailler avec ces fichiers.
Tutoriel Accès rapide
Documentation pour Excel en C#
Utilisez la documentation IronXL pour travailler avec Excel en C# afin d'utiliser toutes les fonctionnalités, classes, espaces de noms et autres dans vos projets.
Documentation pour Excel en C#