using IronXL;
using System;
using System.Linq;
// Supported for XLSX, XLS, XLSM, XLTX, CSV and TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");
// Select worksheet at index 0
WorkSheet workSheet = workBook.WorkSheets[0];
// Get any existing worksheet
WorkSheet firstSheet = workBook.DefaultWorkSheet;
// Select a cell and return the converted value
int cellValue = workSheet["A2"].IntValue;
// Read from ranges of cells elegantly.
foreach (var cell in workSheet["A2:A10"])
{
Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
// Calculate aggregate values such as Min, Max and Sum
decimal sum = workSheet["A2:A10"].Sum();
// Linq compatible
decimal max = workSheet["A2:A10"].Max(c => c.DecimalValue);
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
Installez la bibliothèque IronXL pour gérer les fichiers Excel.
Chargez le classeur et spécifiez la feuille de calcul.
Sélectionnez la plage de cellules à lire.
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
La commande ci-dessus installera IronXL avec toutes ses dépendances.
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
$vbLabelText $csharpLabel
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
$vbLabelText $csharpLabel
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.
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
$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 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()))}")
$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. 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.
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}")
$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. 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.
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
$vbLabelText $csharpLabel
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.
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")
$vbLabelText $csharpLabel
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
$vbLabelText $csharpLabel
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.
É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()
$vbLabelText $csharpLabel
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()
$vbLabelText $csharpLabel
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.
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.
Avant de devenir ingénieur logiciel, Kannapat a obtenu un doctorat en ressources environnementales à l'université d'Hokkaido au Japon. Tout en poursuivant ses études, Kannapat est également devenu membre du Vehicle Robotics Laboratory, qui fait partie du Department of Bioproduction Engineering (département d'ingénierie de la bioproduction). En 2022, il a mis à profit ses compétences en C# pour rejoindre l'équipe d'ingénieurs d'Iron Software, où il se concentre sur IronPDF. Kannapat apprécie son travail car il apprend directement auprès du développeur qui écrit la majeure partie du code utilisé dans IronPDF. Outre l'apprentissage par les pairs, Kannapat apprécie l'aspect social du travail chez Iron Software. Lorsqu'il n'écrit pas de code ou de documentation, Kannapat peut généralement être trouvé en train de jouer sur sa PS5 ou de revoir The Last of Us.
SUIVANT > Comment travailler avec des fichiers Excel en C#
Des millions d'ingénieurs dans le monde entier lui font confiance
Réservez une démo en direct gratuite
Réservez une démonstration personnelle de 30 minutes.
Pas de contrat, pas de détails de carte, pas d'engagements.
Voici ce à quoi vous pouvez vous attendre :
Une démonstration en direct de notre produit et de ses principales fonctionnalités
Obtenez des recommandations de fonctionnalités spécifiques au projet
Toutes vos questions trouvent réponse pour vous assurer de disposer de toutes les informations dont vous avez besoin. (Aucune obligation de votre part.)
CHOISIR L'HEURE
VOS INFORMATIONS
Réservez votre gratuit Démonstration en direct
Fiable par plus de 2 millions d'ingénieurs dans le monde entier