Passer au contenu du pied de page
UTILISATION D'IRONXL

Comment ouvrir des fichiers Excel en C#

IronXL permet aux développeurs C# d'ouvrir, de lire et de manipuler des fichiers Excel sans nécessiter l'installation de Microsoft Office. Il suffit de charger les classeurs à l'aide WorkBook.Load() , d'accéder aux feuilles de calcul et de lire les valeurs des cellules grâce à une syntaxe intuitive comme sheet["A1"] .

Ce tutoriel explore l'utilisation d'IronXL pour ouvrir et lire des fichiers Excel dans des projets C#, en fournissant aux développeurs juniors des exemples complets et des bonnes pratiques pour travailler avec des données Excel .

Qu'est-ce que la bibliothèque Excel IronXL ?

IronXL est une bibliothèque .NET qui privilégie la facilité d'utilisation, la précision et la rapidité. Il vous permet d'ouvrir, de lire, de créer et de modifier efficacement des fichiers Excel sans nécessiter MS Office Interop, ce qui en fait un choix pratique pour les développeurs souhaitant travailler avec Excel en C# sans Interop .

IronXL est compatible avec tous les frameworks .NET ainsi qu'avec Linux , macOS , Docker , Azure et AWS . Vous pouvez l'utiliser pour créer des applications console, web et de bureau, comme Blazor et .NET MAUI pour les applications web modernes. Il prend en charge différents formats de classeurs, tels que les fichiers XLS et XLSX, XSLT et XLSM, CSV et TSV.

Quelles sont les principales caractéristiques d'IronXL ?

Comment ouvrir un fichier Excel en C# ?

De quoi ai-je besoin avant de commencer ?

Pour utiliser IronXL dans des applications C#, installez les composants suivants sur votre ordinateur local :

  1. Visual Studio - L'IDE officiel pour le développement d'applications C# .NET. Vous pouvez télécharger et installer Visual Studio depuis le site web de Microsoft . Vous pouvez également utiliser JetBrains ReSharper et Rider . Pour obtenir des conseils supplémentaires sur la configuration, reportez-vous à la présentation générale " Premiers pas " .
  2. IronXL - La bibliothèque Excel qui facilite le travail avec les feuilles Excel en C#. Il doit être installé dans votre application C# avant d'être utilisé. Vous pouvez le télécharger depuis le site web de NuGet ou depuis la section " Gérer les packages NuGet " dans Visual Studio. Vous pouvez également télécharger directement le fichier DLL .NET Excel . Pour la mise en œuvre des licences, voir Utilisation des clés de licence .

Quels espaces de noms dois-je importer ?

Une fois Visual Studio et IronXL installés, ajoutez les espaces de noms IronXL nécessaires en incluant la ligne suivante en haut de votre fichier C# :

// Add reference to the IronXL library
using IronXL;
// Add reference to the IronXL library
using IronXL;
$vbLabelText   $csharpLabel

Pour travailler avec des formats Excel spécifiques ou des fonctionnalités avancées, vous pourriez également avoir besoin de :

using IronXL.Formatting;  // For cell styling
using IronXL.Drawing;     // For images and charts
using System.Data;        // For DataSet/DataTable operations
using IronXL.Formatting;  // For cell styling
using IronXL.Drawing;     // For images and charts
using System.Data;        // For DataSet/DataTable operations
$vbLabelText   $csharpLabel

Comment charger un fichier Excel existant ?

Les fichiers Excel, également appelés classeurs, sont composés de plusieurs feuilles de calcul, chacune contenant des valeurs de cellules. Pour ouvrir et lire un fichier Excel , chargez-le à l'aide de la méthode Load de la classe WorkBook . La fonctionnalité LoadSpreadsheets prend en charge différents formats.

// Supported Excel spreadsheet formats for reading include: XLSX, XLS, CSV, and TSV
WorkBook workbook = WorkBook.Load("test.xlsx");

// You can also load from streams for web applications
// using (var stream = File.OpenRead("test.xlsx"))
// {
//     WorkBook workbook = WorkBook.Load(stream);
// }
// Supported Excel spreadsheet formats for reading include: XLSX, XLS, CSV, and TSV
WorkBook workbook = WorkBook.Load("test.xlsx");

// You can also load from streams for web applications
// using (var stream = File.OpenRead("test.xlsx"))
// {
//     WorkBook workbook = WorkBook.Load(stream);
// }
$vbLabelText   $csharpLabel

Cela initialise le classeur en tant qu'instance WorkBook . Pour ouvrir une WorkSheet spécifique, récupérez-la dans la collection WorkSheets . Le guide " Gérer les feuilles de calcul " fournit plus de détails sur les opérations sur les feuilles de calcul :

// Access the first worksheet in the workbook
WorkSheet sheet = workbook.WorkSheets.First();

// Alternative ways to access worksheets
WorkSheet sheetByIndex = workbook.WorkSheets[0];  // By index
WorkSheet sheetByName = workbook.GetWorkSheet("Sheet1");  // By name
// Access the first worksheet in the workbook
WorkSheet sheet = workbook.WorkSheets.First();

// Alternative ways to access worksheets
WorkSheet sheetByIndex = workbook.WorkSheets[0];  // By index
WorkSheet sheetByName = workbook.GetWorkSheet("Sheet1");  // By name
$vbLabelText   $csharpLabel

Ceci permet d'accéder à la première feuille du fichier Excel, prête pour la lecture et l'écriture.

Feuille de calcul Excel présentant les données de 5 employés, avec des colonnes pour le nom, la fonction et le salaire, des en-têtes de cellules formatés et des bordures de cellules. Fichier Excel

Comment lire les données des cellules Excel ?

Une fois le fichier Excel ouvert, il est prêt à lire les données. La lecture de données à partir de fichiers Excel en C# avec IronXL est simple. Vous pouvez lire les valeurs des cellules en spécifiant la référence de la cellule à l'aide de la fonctionnalité Sélectionner une plage .

Le code suivant récupère la valeur d'une cellule :

// Select the cell using Excel notation and retrieve its integer value
int cellValue = sheet["C2"].IntValue;

// You can also retrieve values in different formats
string textValue = sheet["C2"].StringValue;
decimal decimalValue = sheet["C2"].DecimalValue;
DateTime dateValue = sheet["C2"].DateTimeValue;
bool boolValue = sheet["C2"].BoolValue;

// Display the value in the console
Console.WriteLine($"Cell C2 contains: {cellValue}");

// Check if cell is empty before reading
if (!sheet["C2"].IsEmpty)
{
    Console.WriteLine($"Cell value: {sheet["C2"].Value}");
}
// Select the cell using Excel notation and retrieve its integer value
int cellValue = sheet["C2"].IntValue;

// You can also retrieve values in different formats
string textValue = sheet["C2"].StringValue;
decimal decimalValue = sheet["C2"].DecimalValue;
DateTime dateValue = sheet["C2"].DateTimeValue;
bool boolValue = sheet["C2"].BoolValue;

// Display the value in the console
Console.WriteLine($"Cell C2 contains: {cellValue}");

// Check if cell is empty before reading
if (!sheet["C2"].IsEmpty)
{
    Console.WriteLine($"Cell value: {sheet["C2"].Value}");
}
$vbLabelText   $csharpLabel

La sortie est la suivante :

! Fenêtre de la console de débogage de Microsoft Visual Studio affichant l'extraction réussie de la valeur " 100000 " de la cellule C2 d'Excel avec un message de sortie contextuel Lire Excel

Pour lire les données d'une plage de cellules, utilisez une boucle pour parcourir la plage spécifiée. L'exemple " Sélectionner une plage Excel " propose d'autres modèles :

// Iterate through a range of cells and display their address and text content
foreach (var cell in sheet["A2:A6"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}

// Read an entire column
foreach (var cell in sheet.GetColumn(0))  // Column A
{
    if (!cell.IsEmpty)
    {
        Console.WriteLine($"Column A value: {cell.Text}");
    }
}

// Read an entire row
foreach (var cell in sheet.GetRow(1))  // Row 2
{
    Console.WriteLine($"Row 2 value: {cell.Text}");
}
// Iterate through a range of cells and display their address and text content
foreach (var cell in sheet["A2:A6"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}

// Read an entire column
foreach (var cell in sheet.GetColumn(0))  // Column A
{
    if (!cell.IsEmpty)
    {
        Console.WriteLine($"Column A value: {cell.Text}");
    }
}

// Read an entire row
foreach (var cell in sheet.GetRow(1))  // Row 2
{
    Console.WriteLine($"Row 2 value: {cell.Text}");
}
$vbLabelText   $csharpLabel

Chaque valeur de la plage de cellules A2:A6 est extraite et affichée sur la console.

! Console de débogage Microsoft Visual Studio avec coloration syntaxique affichant la sortie de la lecture de la plage Excel A2:A6, présentant les noms des employés John, Sara, Peter, Method et Katherine Lire une plage de cellules

Pour des exemples de lecture et d'écriture plus détaillés, consultez le tutoriel de lecture Excel en C# . Vous pouvez également convertir les données Excel en DataTables pour une manipulation plus aisée :

// Convert worksheet to DataTable for easier data manipulation
DataTable dataTable = sheet.ToDataTable(true);  // true = first row contains headers

// Access data using DataTable methods
foreach (DataRow row in dataTable.Rows)
{
    Console.WriteLine($"Employee: {row["Name"]}, Salary: {row["Salary"]}");
}
// Convert worksheet to DataTable for easier data manipulation
DataTable dataTable = sheet.ToDataTable(true);  // true = first row contains headers

// Access data using DataTable methods
foreach (DataRow row in dataTable.Rows)
{
    Console.WriteLine($"Employee: {row["Name"]}, Salary: {row["Salary"]}");
}
$vbLabelText   $csharpLabel

Comment créer un nouveau fichier Excel ?

IronXL facilite également la création de nouveaux classeurs pour la sauvegarde et la récupération des données. Le guide " Créer des feuilles de calcul " fournit des exemples complets.

Vous pouvez créer un nouveau fichier Excel avec une seule ligne de code :

// Create a new workbook with the XLSX format
WorkBook workBook = new WorkBook(ExcelFileFormat.XLSX);

// Alternative: Create with XLS format for compatibility
WorkBook xlsWorkBook = new WorkBook(ExcelFileFormat.XLS);

// Set workbook metadata
workBook.Metadata.Title = "Employee Data";
workBook.Metadata.Author = "Your Name";
workBook.Metadata.Keywords = "employees, salary, data";
// Create a new workbook with the XLSX format
WorkBook workBook = new WorkBook(ExcelFileFormat.XLSX);

// Alternative: Create with XLS format for compatibility
WorkBook xlsWorkBook = new WorkBook(ExcelFileFormat.XLS);

// Set workbook metadata
workBook.Metadata.Title = "Employee Data";
workBook.Metadata.Author = "Your Name";
workBook.Metadata.Keywords = "employees, salary, data";
$vbLabelText   $csharpLabel

Ensuite, créez une feuille de calcul et ajoutez-y des données. Pour des modèles de création plus avancés, consultez Créer un nouveau fichier Excel .

Comment ajouter des feuilles de travail à un classeur ?

// Create a worksheet named "GDPByCountry" in the workbook
WorkSheet workSheet = workBook.CreateWorkSheet("GDPByCountry");

// Create multiple worksheets at once
WorkSheet sheet2 = workBook.CreateWorkSheet("PopulationData");
WorkSheet sheet3 = workBook.CreateWorkSheet("Summary");

// Copy an existing worksheet
WorkSheet copiedSheet = workSheet.CopySheet("GDPByCountryCopy");
// Create a worksheet named "GDPByCountry" in the workbook
WorkSheet workSheet = workBook.CreateWorkSheet("GDPByCountry");

// Create multiple worksheets at once
WorkSheet sheet2 = workBook.CreateWorkSheet("PopulationData");
WorkSheet sheet3 = workBook.CreateWorkSheet("Summary");

// Copy an existing worksheet
WorkSheet copiedSheet = workSheet.CopySheet("GDPByCountryCopy");
$vbLabelText   $csharpLabel

Ce code ajoute une feuille de calcul nommée " GDPByCountry " au classeur, vous permettant d'ajouter des valeurs aux cellules. Apprenez-en davantage sur la gestion et la copie des feuilles de calcul .

Pour définir une valeur pour une cellule spécifique, utilisez le code ci-dessous :

// Set the value of cell A1 to "Example"
workSheet["A1"].Value = "Example";

// Add different types of data
workSheet["A2"].Value = 12345;  // Integer
workSheet["A3"].Value = 99.99m;  // Decimal
workSheet["A4"].Value = DateTime.Now;  // Date
workSheet["A5"].Value = true;  // Boolean

// Add formulas
workSheet["B1"].Formula = "=SUM(A2:A3)";

// Set multiple cells at once using a range
workSheet["C1:C5"].Value = "Bulk Value";

// Save the workbook
workBook.SaveAs("output.xlsx");
// Set the value of cell A1 to "Example"
workSheet["A1"].Value = "Example";

// Add different types of data
workSheet["A2"].Value = 12345;  // Integer
workSheet["A3"].Value = 99.99m;  // Decimal
workSheet["A4"].Value = DateTime.Now;  // Date
workSheet["A5"].Value = true;  // Boolean

// Add formulas
workSheet["B1"].Formula = "=SUM(A2:A3)";

// Set multiple cells at once using a range
workSheet["C1:C5"].Value = "Bulk Value";

// Save the workbook
workBook.SaveAs("output.xlsx");
$vbLabelText   $csharpLabel

Le résultat final est :

! Feuille de calcul Excel montrant la cellule A1 remplie avec le texte " Exemple " ajouté par programmation en C#, avec l'onglet de la feuille de calcul GDPByCountry visible et la mise en surbrillance de la cellule pour indiquer la valeur ajoutée Ajouter de la valeur à la cellule

Travailler avec différents formats Excel

IronXL prend en charge plusieurs formats Excel. Voici comment gérer différents types de fichiers :

// Convert between formats
WorkBook workbook = WorkBook.Load("data.csv");
workbook.SaveAs("data.xlsx");  // Convert CSV to XLSX

// Export to different formats
workbook.SaveAsCsv("output.csv", ";");  // CSV with semicolon delimiter
workbook.SaveAsJson("output.json");     // Export as JSON
workbook.SaveAsXml("output.xml");       // Export as XML
// Convert between formats
WorkBook workbook = WorkBook.Load("data.csv");
workbook.SaveAs("data.xlsx");  // Convert CSV to XLSX

// Export to different formats
workbook.SaveAsCsv("output.csv", ";");  // CSV with semicolon delimiter
workbook.SaveAsJson("output.json");     // Export as JSON
workbook.SaveAsXml("output.xml");       // Export as XML
$vbLabelText   $csharpLabel

Apprenez-en davantage sur la conversion des types de fichiers tableur et la conversion de XLSX en CSV, JSON, XML .

Gestion des erreurs et meilleures pratiques

Lors de la manipulation de fichiers Excel, mettez en œuvre une gestion des erreurs appropriée :

try
{
    WorkBook workbook = WorkBook.Load("test.xlsx");
    WorkSheet sheet = workbook.GetWorkSheet("Sheet1");

    // Check if sheet exists
    if (sheet == null)
    {
        Console.WriteLine("Worksheet not found!");
        return;
    }

    // Process data
    var value = sheet["A1"].Value;
}
catch (Exception ex)
{
    Console.WriteLine($"Error reading Excel file: {ex.Message}");
}
try
{
    WorkBook workbook = WorkBook.Load("test.xlsx");
    WorkSheet sheet = workbook.GetWorkSheet("Sheet1");

    // Check if sheet exists
    if (sheet == null)
    {
        Console.WriteLine("Worksheet not found!");
        return;
    }

    // Process data
    var value = sheet["A1"].Value;
}
catch (Exception ex)
{
    Console.WriteLine($"Error reading Excel file: {ex.Message}");
}
$vbLabelText   $csharpLabel

Pour les applications de production, envisagez de configurer la journalisation et de mettre en œuvre des modèles de gestion des erreurs appropriés.

Qu'avons-nous appris ?

Cet article explique comment ouvrir et lire des fichiers Excel, tels que XLS et XLSX, en C# à l'aide d'IronXL. IronXL ne nécessite pas l'installation de Microsoft Excel sur le système pour les tâches liées à Excel, ce qui le rend idéal pour les déploiements Docker et les fonctions Azure .

IronXL offre une solution complète pour les tâches liées à Excel par programmation, notamment le calcul de formules , le tri de chaînes de caractères, le rognage , la recherche et le remplacement, la fusion et la dissociation , l'enregistrement de fichiers , et bien plus encore. Vous pouvez également définir les formats de données des cellules, utiliser la mise en forme conditionnelle et créer des graphiques .

Pour accéder aux fonctionnalités avancées, explorez le regroupement et le dégroupement , les plages nommées , les hyperliens et la protection des fichiers Excel . La documentation complète de l'API fournit des informations détaillées sur toutes les fonctionnalités.

IronXL est disponible en essai gratuit de 30 jours et peut être utilisé sous licence à des fins commerciales. Le package Lite d'IronXL commence à partir de $799 . Pour accéder à des ressources supplémentaires, consultez la section tutoriels ou explorez les exemples de code pour les scénarios courants.

Questions Fréquemment Posées

Comment puis-je ouvrir des fichiers Excel en C# sans utiliser Interop ?

Vous pouvez ouvrir des fichiers Excel en C# sans utiliser Interop en utilisant la bibliothèque IronXL. Utilisez la méthode WorkBook.Load pour charger un fichier Excel dans une instance de WorkBook, ce qui vous permet d'accéder et de manipuler les données du fichier.

Quels formats de fichiers sont compatibles avec cette bibliothèque C# pour Excel ?

IronXL prend en charge une variété de formats de fichiers Excel, y compris XLS, XLSX, CSV et TSV. Cela permet aux développeurs d'ouvrir, lire et écrire ces formats de manière flexible dans leurs applications C#.

Puis-je modifier des fichiers Excel en C# en utilisant cette bibliothèque ?

Oui, vous pouvez modifier des fichiers Excel en utilisant IronXL. Après avoir chargé un classeur, vous pouvez modifier les données, ajouter de nouvelles feuilles de calcul, puis enregistrer les modifications dans le fichier ou l'exporter dans divers formats.

Comment installer cette bibliothèque pour l'utiliser dans mon projet C# ?

Pour installer IronXL dans votre projet C#, vous pouvez utiliser le gestionnaire de packages NuGet dans Visual Studio pour ajouter la bibliothèque. Alternativement, vous pouvez télécharger le DLL Excel .NET et le référencer dans votre projet.

Est-il possible de chiffrer des fichiers Excel en utilisant cette bibliothèque ?

Oui, IronXL vous permet de chiffrer et de déchiffrer des fichiers Excel. Vous pouvez sécuriser vos documents Excel avec des mots de passe pour protéger les données sensibles lors des opérations sur les fichiers.

Est-ce que cette bibliothèque prend en charge le recalcul automatique des formules dans les feuilles Excel ?

IronXL prend en charge le recalcul automatique des formules, garantissant que toute modification des données met automatiquement à jour les formules, comme dans Excel.

Comment puis-je lire les valeurs de cellules spécifiques dans une feuille de calcul Excel en utilisant cette bibliothèque ?

Pour lire des valeurs de cellules spécifiques en utilisant IronXL, vous pouvez référencer la cellule en utilisant la notation Excel. Par exemple, sheet['A1'].StringValue récupérera la valeur sous forme de chaîne de la cellule A1.

Cette bibliothèque peut-elle être utilisée sur différents systèmes d'exploitation ?

Oui, IronXL est compatible avec plusieurs systèmes d'exploitation, y compris Windows, Linux et macOS. Il prend également en charge le déploiement dans des environnements Docker, Azure et AWS.

Quels sont les avantages d'utiliser cette bibliothèque par rapport à MS Office Interop ?

IronXL offre plusieurs avantages par rapport à MS Office Interop, tels que ne pas nécessiter l'installation d'Excel sur le système, de meilleures performances dans les environnements serveurs, et la facilité d'utilisation avec les applications .NET modernes.

Y a-t-il une version d'essai gratuite disponible pour cette bibliothèque C# pour Excel ?

Oui, IronXL offre un essai gratuit de 30 jours, vous permettant de tester ses fonctionnalités et capacités avant de décider d'une licence commerciale pour vos projets.

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