Passer au contenu du pied de page
UTILISATION D'IRONXL

Comment gérer les plages Excel en C#

L'utilisation programmatique des fichiers Excel peut considérablement améliorer 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 dynamiquement des feuilles de calcul complexes, la maîtrise de la manipulation des fichiers Excel est cruciale. Dans ce tutoriel, nous nous concentrerons sur l'utilisation des plages Excel avec IronXL . Nous verrons comment écrire , lire et manipuler des plages de valeurs dans un fichier Excel.

Comment lire les plages Excel en C

  1. Installez la bibliothèque IronXL pour la gestion des 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 ?

IronXL est 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 feuilles de calcul. Ses fonctionnalités incluent la lecture , l'écriture et la modification de fichiers Excel sans nécessiter l'installation de Microsoft Excel, permettant ainsi une compatibilité multiplateforme.

IronXL facilite l'extraction de données à partir de cellules spécifiques, de plages ou de feuilles de calcul entières, ainsi que des fonctionnalités avancées telles que la mise en forme , le style et la mise en forme conditionnelle . Grâce à sa prise en charge des calculs, des formules et des analyses statistiques, IronXL permet aux développeurs de gérer efficacement les opérations Excel par programmation, ce qui en fait un outil indispensable pour automatiser les tâches axées sur les données dans les applications C#.

Premiers pas avec les plages 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

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 à l'endroit où vous souhaitez utiliser les méthodes IronXL.

using IronXL;
using IronXL;
Imports IronXL
$vbLabelText   $csharpLabel

Charger le 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)
{
    // Load an existing Excel workbook
    var workbook = WorkBook.Load("test_excel.xlsx");

    // Retrieve the specified worksheet from the workbook
    var sheet = workbook.GetWorkSheet("Sheet1");
}
static void Main(string[] args)
{
    // Load an existing Excel workbook
    var workbook = WorkBook.Load("test_excel.xlsx");

    // Retrieve the specified worksheet from the workbook
    var sheet = workbook.GetWorkSheet("Sheet1");
}
Shared Sub Main(ByVal args() As String)
	' Load an existing Excel workbook
	Dim workbook = WorkBook.Load("test_excel.xlsx")

	' Retrieve the specified worksheet from the workbook
	Dim sheet = workbook.GetWorkSheet("Sheet1")
End Sub
$vbLabelText   $csharpLabel

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

J'utiliserai 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

À présent, lisons les données des plages de cellules spécifiées.

// Define a range from cell A2 to G10 in the worksheet
var range = sheet["A2:G10"];

// Iterate over each cell in the range and output its value
foreach (var item in range)
{
    Console.WriteLine(item);
}
// Define a range from cell A2 to G10 in the worksheet
var range = sheet["A2:G10"];

// Iterate over each cell in the range and output its value
foreach (var item in range)
{
    Console.WriteLine(item);
}
' Define a range from cell A2 to G10 in the worksheet
Dim range = sheet("A2:G10")

' Iterate over each cell in the range and output its value
For Each item In range
	Console.WriteLine(item)
Next item
$vbLabelText   $csharpLabel

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

En utilisant Console.WriteLine(item); , le code affiche la valeur de chaque cellule dans la console, ce qui facilite la consultation du contenu de la plage. Cette approche simplifie la gestion des données et améliore la lisibilité du code.

Utiliser les formules Excel dans une plage

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

// Define a range from cell F2 to F42 for statistical analysis
var range = sheet["F2:F42"];

// Output the minimum age within the range
Console.WriteLine($"Minimum Age: {range.Min()}");

// Output the maximum age within the range
Console.WriteLine($"Maximum Age: {range.Max()}");

// Output the average age, casting the average value to an integer
Console.WriteLine($"Average Age: {(int)range.Avg()}");
// Define a range from cell F2 to F42 for statistical analysis
var range = sheet["F2:F42"];

// Output the minimum age within the range
Console.WriteLine($"Minimum Age: {range.Min()}");

// Output the maximum age within the range
Console.WriteLine($"Maximum Age: {range.Max()}");

// Output the average age, casting the average value to an integer
Console.WriteLine($"Average Age: {(int)range.Avg()}");
Imports System

' Define a range from cell F2 to F42 for statistical analysis
Dim range = sheet("F2:F42")

' Output the minimum age within the range
Console.WriteLine($"Minimum Age: {range.Min()}")

' Output the maximum age within the range
Console.WriteLine($"Maximum Age: {range.Max()}")

' Output the average age, casting the average value to an integer
Console.WriteLine($"Average Age: {CInt(Math.Truncate(range.Avg()))}")
$vbLabelText   $csharpLabel

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. En utilisant range.Min() et range.Max() , il calcule efficacement les valeurs d'âge minimales et maximales dans la plage spécifiée, ce qui contribue à l'analyse démographique.

De plus, range.Avg() calcule l'âge moyen, offrant ainsi des indicateurs statistiques précieux pour l'interprétation des données. Cette approche simplifie les tâches d'analyse des données, offrant un accès rapide aux informations statistiques essentielles pour une prise de décision éclairée.

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

Lecture des données d'une seule cellule

Lisons les données d'une seule cellule.

// Retrieve the value from cell B2 in the worksheet
var read_from_single_cell = sheet["B2"];

// Output the value in cell B2
Console.WriteLine($"The Value in Cell B2 is: {read_from_single_cell}");
// Retrieve the value from cell B2 in the worksheet
var read_from_single_cell = sheet["B2"];

// Output the value in cell B2
Console.WriteLine($"The Value in Cell B2 is: {read_from_single_cell}");
' Retrieve the value from cell B2 in the worksheet
Dim read_from_single_cell = sheet("B2")

' Output the value in cell B2
Console.WriteLine($"The Value in Cell B2 is: {read_from_single_cell}")
$vbLabelText   $csharpLabel

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. Grâce à cette méthode, vous pouvez facilement accéder aux valeurs de cellules spécifiques dans le fichier Excel.

Avec Console.WriteLine($"The Value in Cell B2 is: {read_from_single_cell}"); , le code affiche la valeur récupérée des cellules référencées dans la console, facilitant ainsi 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 la colonne entière

Lisons les données d'une colonne entière à l'aide de l'index.

// Retrieve values from the column at index 2 (C column) 
var columnValues = sheet.GetColumn(2); // 2 is column index

// Iterate over each value in the column and output it
foreach (var columnValue in columnValues)
{
    Console.WriteLine(columnValue);
}
// Retrieve values from the column at index 2 (C column) 
var columnValues = sheet.GetColumn(2); // 2 is column index

// Iterate over each value in the column and output it
foreach (var columnValue in columnValues)
{
    Console.WriteLine(columnValue);
}
' Retrieve values from the column at index 2 (C column) 
Dim columnValues = sheet.GetColumn(2) ' 2 is column index

' Iterate over each value in the column and output it
For Each columnValue In columnValues
	Console.WriteLine(columnValue)
Next columnValue
$vbLabelText   $csharpLabel

Le code var columnValues = sheet.GetColumn(2); récupère toutes les valeurs de la colonne située à l'index 2 (colonne C) 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 qui parcourt columnValues , chaque valeur de la colonne est affichée dans la console à l'aide de Console.WriteLine(columnValue); . Cette approche facilite le traitement et l'affichage des données en colonnes issues de fichiers Excel, rationalisant ainsi les tâches d'analyse de données.

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

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

// Retrieve values from the column with name "C"
var columnValues = sheet.GetColumn("C");
// Retrieve values from the column with name "C"
var columnValues = sheet.GetColumn("C");
' Retrieve values from the column with name "C"
Dim columnValues = sheet.GetColumn("C")
$vbLabelText   $csharpLabel

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

Lecture des données de la ligne entière

Lisons les données de la ligne entière en utilisant les numéros de ligne.

// Retrieve values from the row at index 1 (Row 2)
var rowValues = sheet.GetRow(1); // 1 is row index

// Iterate over each value in the row and output it
foreach (var rowValue in rowValues)
{
    Console.Write(rowValue + "  ");
}
// Retrieve values from the row at index 1 (Row 2)
var rowValues = sheet.GetRow(1); // 1 is row index

// Iterate over each value in the row and output it
foreach (var rowValue in rowValues)
{
    Console.Write(rowValue + "  ");
}
' Retrieve values from the row at index 1 (Row 2)
Dim rowValues = sheet.GetRow(1) ' 1 is row index

' Iterate over each value in the row and output it
For Each rowValue In rowValues
	Console.Write(rowValue & "  ")
Next rowValue
$vbLabelText   $csharpLabel

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

Cette approche simplifie l'extraction et l'affichage des données brutes des fichiers Excel, facilitant ainsi l'analyse des données et les tâches de reporting. De cette manière, nous pouvons lire les valeurs de plusieurs cellules sans spécifier de plage.

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

Écriture de 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.

// Select a range from D2 to D14 for modification
var range = sheet["D2:D14"];

// Set the value for each cell in the range
range.Value = "Prefer Not to Say"; // Change Gender Value

// Save the modified workbook to persist changes
workbook.Save();
// Select a range from D2 to D14 for modification
var range = sheet["D2:D14"];

// Set the value for each cell in the range
range.Value = "Prefer Not to Say"; // Change Gender Value

// Save the modified workbook to persist changes
workbook.Save();
' Select a range from D2 to D14 for modification
Dim range = sheet("D2:D14")

' Set the value for each cell in the range
range.Value = "Prefer Not to Say" ' Change Gender Value

' Save the modified workbook to persist changes
workbook.Save()
$vbLabelText   $csharpLabel

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

La commande workbook.Save(); qui suit garantit l'enregistrement permanent de ces modifications, préservant ainsi la cohérence et l'intégrité des données. Cette approche simplifie les mises à jour par lots et garantit l'uniformité entre plusieurs cellules, améliorant ainsi l'efficacité de la gestion des données.

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

// Set the value for cell B2
sheet["B2"].Value = "John";

// Save the workbook to persist the changes
workbook.Save();
// Set the value for cell B2
sheet["B2"].Value = "John";

// Save the workbook to persist the changes
workbook.Save();
' Set the value for cell B2
sheet("B2").Value = "John"

' Save the workbook to persist the changes
workbook.Save()
$vbLabelText   $csharpLabel

Le code sheet["B2"].Value = "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 - Plage Excel en C#

Conclusion

En conclusion, la maîtrise des opérations sur les plages Excel en C# à l'aide d'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.

Grâce aux puissantes fonctionnalités d'IronXL pour la lecture, l'écriture et la manipulation de 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, la mise en forme et l'analyse statistique. De plus, IronXL propose un essai gratuit , garantissant flexibilité et évolutivité pour répondre aux exigences de divers projets.

Questions Fréquemment Posées

Comment puis-je commencer à manipuler des plages Excel en C# ?

Pour commencer à manipuler des plages Excel en C#, installez la bibliothèque IronXL via le Gestionnaire de Paquets NuGet en utilisant la commande : Install-Package IronXL.Excel. Ensuite, vous pouvez commencer à charger des classeurs Excel et à travailler avec des plages en utilisant l'API complète d'IronXL.

Comment puis-je charger un classeur Excel en utilisant IronXL ?

Vous pouvez charger un classeur Excel dans IronXL avec la méthode WorkBook.Load, en passant le nom de fichier comme argument, par exemple : var workbook = WorkBook.Load('test_excel.xlsx');.

Quelles méthodes sont disponibles pour lire une plage spécifique de cellules dans IronXL ?

Dans IronXL, vous pouvez lire une plage spécifique de cellules en définissant la plage en utilisant une syntaxe comme sheet['A2:G10'] et en itérant dessus pour accéder à la valeur de chaque cellule.

Comment puis-je effectuer une analyse statistique sur des données dans une plage Excel ?

En utilisant IronXL, vous pouvez effectuer une analyse statistique en sélectionnant une plage et en appliquant des méthodes telles que range.Min(), range.Max(), et range.Avg() pour calculer respectivement les valeurs minimum, maximum et moyenne.

Quel est le processus pour écrire des données dans une cellule spécifique en utilisant IronXL ?

Pour écrire des données dans une cellule spécifique dans IronXL, assignez une valeur directement à la cellule, par exemple : sheet['B2'].Value = 'John';, puis enregistrez le classeur pour conserver les modifications.

Puis-je lire une colonne entière de données sans spécifier une plage dans IronXL ?

Oui, IronXL vous permet de lire une colonne entière en utilisant sheet.GetColumn(index) ou sheet.GetColumn('C'), vous permettant de récupérer des données soit à l'aide d'un index soit d'un nom de colonne.

Comment extraire des données d'une ligne entière en utilisant IronXL ?

Pour extraire des données d'une ligne entière dans IronXL, utilisez sheet.GetRow(index) et itérez sur les valeurs récupérées pour accéder aux données.

Quelles fonctionnalités avancées IronXL offre-t-il pour la manipulation d'Excel ?

IronXL offre des fonctions avancées telles que le formatage, le style, le formatage conditionnel et le support pour les calculs et formules, améliorant les capacités de manipulation des fichiers Excel dans les applications C#.

Est-il possible d'essayer IronXL avant de l'acheter ?

Oui, IronXL propose un essai gratuit, permettant aux développeurs d'explorer ses fonctionnalités et de déterminer son adéquation pour leurs projets sans aucun coût initial.

Comment IronXL peut-il améliorer l'automatisation dans les applications C# ?

IronXL améliore l'automatisation dans les applications C# en permettant une manipulation transparente des fichiers Excel par programmation, ce qui est essentiel pour des tâches telles que le traitement de données, la génération de rapports et la création dynamique de feuilles de calcul, le tout sans nécessiter l'installation de Microsoft Excel.

Jordi Bardia
Ingénieur logiciel
Jordi est le plus compétent en Python, C# et C++, et lorsqu'il ne met pas à profit ses compétences chez Iron Software, il programme des jeux. Partageant les responsabilités des tests de produit, du développement de produit et de la recherche, Jordi apporte une immense valeur à l'amé...
Lire la suite