UTILISATION D'IRONXL

Comment gérer les plages Excel en C#

Publié septembre 29, 2024
Partager:

Travailler avecFichiers Excelprogrammer peut améliorer considérablement l'efficacité et les capacités d'automatisation de vos applications C#. Que vous génériez des rapports, traitiez des données ou créiez des feuilles de calcul complexes de manière dynamique, maîtriser la manipulation des fichiers Excel est essentiel. Dans ce tutoriel, nous nous concentrerons sur le travail avec des plages Excel en utilisantIronXL. Nous aborderons commentécrire, lireetmanipuler des plagesdans un fichier Excel.

Comment lire des plages Excel en C

  1. Installez la bibliothèque IronXL pour gérer les fichiers Excel.

  2. Chargez le classeur et spécifiez la feuille de calcul.

  3. Sélectionnez la plage de cellules à lire.

  4. Extraire et lire les données de la plage spécifiée.

Qu'est-ce qu'IronXL ?

IronXLest une bibliothèque complète pour C# qui simplifie le travail avec les fichiers Excel, offrant une gamme de fonctionnalités pour une intégration et une manipulation transparentes des données de tableur. Ses capacités incluentlecture, l'écritureetmodificationFichiers Excel sans nécessiter l'installation de Microsoft Excel, permettant une compatibilité multiplateforme.

IronXL facilite l'extraction de données à partir de spécificités.cellules, gammes, ou des feuilles de calcul entières, avec des fonctionnalités avancées telles que mise en forme, le stylismeetformatage conditionnel. Avec la prise en charge des calculs, des formules et de l'analyse statistique, IronXL permet aux développeurs de gérer efficacement les opérations Excel de manière programmatique, en faisant un outil indispensable pour automatiser les tâches centrées sur les données au sein des applications C#.

Démarrage avec la plage de cellules Excel en C

Tout d'abord, nous devons installer la bibliothèque IronXL dans notre application.

Installez le package NuGet IronXL

Vous pouvez installer IronXL via le gestionnaire de packages NuGet avec la commande suivante :

Install-Package IronXL.Excel
Install-Package IronXL.Excel
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronXL.Excel
VB   C#

La commande ci-dessus installera IronXL avec toutes ses dépendances.

Comment gérer les plages Excel en C#: Figure 1

Ajouter un espace de noms

Ajoutez l'espace de noms suivant en haut de la classe Program.cs, ou partout où vous souhaitez utiliser les méthodes IronXL.

using IronXL;
using IronXL;
Imports IronXL
VB   C#

Charger un classeur Excel

La toute première étape consiste à charger le classeur Excel. Le code suivant chargera le classeur Excel dans notre application.

static void Main(string[] args)
 {
     var workbook = WorkBook.Load("test_excel.xlsx");
     var sheet = workbook.GetWorkSheet("Sheet1");
 }
static void Main(string[] args)
 {
     var workbook = WorkBook.Load("test_excel.xlsx");
     var sheet = workbook.GetWorkSheet("Sheet1");
 }
Shared Sub Main(ByVal args() As String)
	 Dim workbook = WorkBook.Load("test_excel.xlsx")
	 Dim sheet = workbook.GetWorkSheet("Sheet1")
End Sub
VB   C#

La ligne de fichier charge un classeur Excel existant depuis le fichier nommé "test_excel.xlsx". La deuxième ligne récupère la feuille de calcul nommée "Sheet1" du classeur chargé.

Je vais utiliser le fichier Excel suivant tout au long de ce tutoriel.

Comment gérer les plages Excel en C#: Figure 2

Lecture des données à partir d'une plage

Maintenant, lisons les données à partir des plages de cellules spécifiées.

var range = sheet["A2:G10"];
foreach (var item in range)
{
    Console.WriteLine(item);
}
var range = sheet["A2:G10"];
foreach (var item in range)
{
    Console.WriteLine(item);
}
Dim range = sheet("A2:G10")
For Each item In range
	Console.WriteLine(item)
Next item
VB   C#

La première ligne sélectionne une adresse de plage spécifique(A2 à G10)dans la feuille de calcul, vous permettant de travailler avec plusieurs cellules Excel simultanément. Le foreach(var item dans la plage)la boucle itère sur chaque cellule de cette plage de cellules, permettant un traitement de données efficace.

En utilisant Console.WriteLine(article); le code imprime la valeur de chaque cellule sur la console, ce qui facilite la révision du contenu de la plage. Cette approche simplifie la gestion des données et améliore la lisibilité du code.

Utiliser des formules Excel dans une plage

Sélectionnons une plage spécifique et implémentons quelques formules Excel.

var range = sheet["F2:F42"];
Console.WriteLine($"Minimum Age: {range.Min()}");
Console.WriteLine($"Maximum Age: {range.Max()}");
Console.WriteLine($"Average Age: {(int)range.Avg()}");
var range = sheet["F2:F42"];
Console.WriteLine($"Minimum Age: {range.Min()}");
Console.WriteLine($"Maximum Age: {range.Max()}");
Console.WriteLine($"Average Age: {(int)range.Avg()}");
Imports System

Dim range = sheet("F2:F42")
Console.WriteLine($"Minimum Age: {range.Min()}")
Console.WriteLine($"Maximum Age: {range.Max()}")
Console.WriteLine($"Average Age: {CInt(Math.Truncate(range.Avg()))}")
VB   C#

Le code var range = sheet["F2:F42"]; sélectionne une plage de cellules allant de F2 à F42, facilitant l'analyse statistique des données d'âge. Utilisation de range.Min()et range.Max(), il calcule efficacement les valeurs d'âge minimum et maximum dans la plage spécifiée, aidant ainsi à obtenir des informations démographiques.

De plus, range.Avg()calcule l'âge moyen, offrant des métriques statistiques précieuses pour l'interprétation des données. Cette approche simplifie les tâches d'analyse des données, offrant un accès rapide à des informations statistiques essentielles pour prendre des décisions éclairées.

Comment gérer les plages Excel en C# : Figure 3

Lecture de données à partir d'une seule cellule

Lisons les données d'une seule cellule.

var read_from_single_cell = sheet["B2"];
Console.WriteLine($"The Value in Cell B2 is: {read_from_single_cell}");
var read_from_single_cell = sheet["B2"];
Console.WriteLine($"The Value in Cell B2 is: {read_from_single_cell}");
Dim read_from_single_cell = sheet("B2")
Console.WriteLine($"The Value in Cell B2 is: {read_from_single_cell}")
VB   C#

Le code var read_from_single_cell = sheet["B2"]; récupère la valeur stockée dans la cellule B2 de la feuille de calcul. En utilisant cette approche, vous pouvez facilement accéder à des valeurs de cellules spécifiques dans le fichier Excel.

Avec Console.WriteLine("La valeur dans la cellule B2 est :{read_from_single_cell}");, le code imprime la valeur récupérée des cellules de référence dans la console, facilitant la vérification des données et le débogage. Cela simplifie le processus de récupération et d'affichage des valeurs de cellules individuelles à partir de fichiers Excel.

Comment gérer les plages Excel en C# : Figure 4

Lecture des données de toute la colonne

Lire les données d'une colonne entière en utilisant l'index.

// Get Last name Column from Index 2
 var columnValues = sheet.GetColumn(2); // 2 is column index
 foreach ( var columnValue in columnValues )
 {
     Console.WriteLine(columnValue);
 }
// Get Last name Column from Index 2
 var columnValues = sheet.GetColumn(2); // 2 is column index
 foreach ( var columnValue in columnValues )
 {
     Console.WriteLine(columnValue);
 }
' Get Last name Column from Index 2
 Dim columnValues = sheet.GetColumn(2) ' 2 is column index
 For Each columnValue In columnValues
	 Console.WriteLine(columnValue)
 Next columnValue
VB   C#

Le code var columnValues = sheet.GetColumn(2); récupère toutes les valeurs de la colonne située à l'indice 2(Colonne B)dans la feuille de calcul. Cela vous permet d'accéder efficacement à toutes les valeurs d'une colonne spécifique de la feuille Excel.

Dans la boucle foreach parcourant columnValues, chaque valeur de la colonne est imprimée sur la console à l'aide de Console.WriteLine.(columnValue);. Cette approche facilite le traitement et l'affichage des données en colonnes à partir de fichiers Excel, simplifiant ainsi les tâches d'analyse des données.

Comment gérer les plages Excel en C# : Figure 5

Alternativement, nous pouvons également lire les données d'une colonne en utilisant un nom de colonne au lieu d'un index. Prenons l'exemple suivant :

var columnValues = sheet.GetColumn("C");
var columnValues = sheet.GetColumn("C");
Dim columnValues = sheet.GetColumn("C")
VB   C#

De cette manière, nous pouvons spécifier plusieurs colonnes.

Lecture de données à partir de toute la ligne

Lisons les données de toute la rangée en utilisant les numéros de ligne.

var rowValues = sheet.GetRow(1);// 1 is row index
 foreach (var rowValue in rowValues)
 {
     Console.Write(rowValue + "  ");
 }
var rowValues = sheet.GetRow(1);// 1 is row index
 foreach (var rowValue in rowValues)
 {
     Console.Write(rowValue + "  ");
 }
Dim rowValues = sheet.GetRow(1) ' 1 is row index
 For Each rowValue In rowValues
	 Console.Write(rowValue & "  ")
 Next rowValue
VB   C#

Le code var rowValues = sheet.GetRow(1); récupère toutes les valeurs d'une seule ligne située à l'index 1(Rangée 2)dans la feuille de calcul, permettant un accès efficace aux données spécifiques à chaque ligne. Dans la boucle foreach itérant sur rowValues, chaque valeur de la ligne est imprimée sur la console à l'aide de Console.Write.(rowValue + " ");.

Cette approche simplifie l'extraction et l'affichage des données de ligne à partir de fichiers Excel, facilitant ainsi les tâches d'analyse et de création de rapports. De cette manière, nous pouvons lire des valeurs à partir de plusieurs cellules sans spécification de plage.

Comment gérer les plages Excel en C# : Figure 6

Écrire des données dans une cellule ou une plage

Nous pouvons écrire des données à la fois dans une cellule et dans une plage. Tout d'abord, nous allons écrire des données dans une plage.

var range = sheet["D2:D14"];
range.Value = "Prefer Not to Say"; // Change Gender Value
workbook.Save();
var range = sheet["D2:D14"];
range.Value = "Prefer Not to Say"; // Change Gender Value
workbook.Save();
Dim range = sheet("D2:D14")
range.Value = "Prefer Not to Say" ' Change Gender Value
workbook.Save()
VB   C#

Le code var range = sheet["D2:D14"]; sélectionne une plage allant de la cellule D2 à D14, permettant la modification en masse des données. En définissant range.Value sur "Préférez ne pas dire", il met efficacement à jour la valeur du genre pour chaque cellule dans la plage spécifiée, minimisant ainsi les tâches répétitives.

Le classeur suivant.Save(); La commande garantit le stockage persistant de ces modifications, maintenant la cohérence et l'intégrité des données. Cette approche simplifie les mises à jour par lot et garantit l'uniformité à travers plusieurs cellules, améliorant ainsi l'efficacité de la gestion des données.

Maintenant, écrivons des données dans une cellule spécifique.

sheet["B2"].Value = "John";
workbook.Save();
sheet["B2"].Value = "John";
workbook.Save();
sheet("B2").Value = "John"
workbook.Save()
VB   C#

La feuille de code["B2"].Valeur = "John"; attribue directement la valeur "John" à la cellule B2 de la feuille de calcul Excel, offrant une méthode concise et simple pour mettre à jour des valeurs de cellules spécifiques. Cette approche simplifie le processus de modification du contenu des cellules individuelles, améliorant ainsi la lisibilité et l'efficacité du code.

Comment gérer les plages Excel en C# : Figure 7 - C# Excel Range

Conclusion

En conclusion, maîtriser les opérations de plage Excel en C# avec IronXL améliore considérablement l'efficacité et les capacités d'automatisation des applications, facilitant des tâches telles que le traitement des données, la génération de rapports et la création de feuilles de calcul dynamiques.

Avec les fonctionnalités puissantes d'IronXL pour la lecture, l'écriture et la manipulation des fichiers Excel, les développeurs peuvent rationaliser les processus de gestion des données et tirer parti de fonctionnalités avancées telles que les formules, le formatage et l'analyse statistique. De plus, IronXL offre un essai gratuit, garantissant flexibilité et évolutivité pour diverses exigences de projet.

SUIVANT >
Comment travailler avec des fichiers Excel en C#