Passer au contenu du pied de page
UTILISATION D'IRONXL

Comment importer un fichier Excel en C#

Importez des fichiers Excel en C# à l'aide d' IronXL , une bibliothèque .NET qui lit les fichiers XLS, XLSX et CSV sans avoir Microsoft Excel installé. Utilisez simplement WorkBook.Load("file.xlsx") pour ouvrir des fichiers et accéder aux données des cellules avec une syntaxe intuitive comme sheet["A1"] .

Microsoft Excel est un logiciel de tableur polyvalent qui facilite l'organisation, la présentation et l'analyse des données. Cependant, travailler avec Excel par programmation en C# peut s'avérer complexe, notamment lorsqu'il s'agit de différents types de fichiers tableur ou lorsque Microsoft Office n'est pas installé sur votre serveur de déploiement. La bibliothèque logicielle IronXL offre une solution complète pour importer et lire des fichiers Excel dans des applications C#, prenant en charge différents formats, notamment les fichiers XLSX , XLS et CSV .

Qu'est-ce qu'IronXL et pourquoi devrais-je l'utiliser pour importer des fichiers Excel ?

IronXL est une bibliothèque Excel .NET qui privilégie la facilité d'utilisation, la précision et la rapidité. Il vous permet d'importer et de lire des documents Excel, ainsi que de créer et de modifier des fichiers Excel efficacement et à une vitesse fulgurante. Contrairement aux approches traditionnelles qui nécessitent l'interopérabilité avec Microsoft Office, IronXL fonctionne de manière indépendante, sans dépendance à l'interopérabilité de MS Office. Cela signifie que vous disposez de toutes les fonctionnalités nécessaires pour lire les fichiers Excel sans avoir besoin d'Excel installé. IronXL est donc un outil puissant permettant aux développeurs d'importer et de lire des fichiers Excel dans des applications C#, qu'il s'agisse d'applications web ASP.NET , d'applications de bureau ou de solutions basées sur le cloud.

IronXL est disponible sur toutes les plateformes telles que Windows, Linux , macOS , Docker , Azure et AWS . Il est compatible avec toutes les versions de .NET Framework et prend en charge les environnements modernes .NET Core et .NET 5+. IronXL est une bibliothèque polyvalente qui peut être intégrée aux applications ASP.NET Console, Desktop et Web, ainsi qu'aux applications Blazor . Il prend en charge différents formats de classeurs comme les fichiers XLS et XLSX, XSLT et XLSM, CSV et TSV, ce qui le rend idéal pour les scénarios où vous devez convertir entre différents types de fichiers tableur .

Quelles sont les principales caractéristiques qui font d'IronXL un outil indispensable pour l'importation de fichiers Excel ?

Ouvrez, lisez et recherchez des données dans des fichiers Excel de différents formats (XLS, CSV, TSV, XLSX) sans installer Excel.

Comment importer un classeur Excel en C# ?

De quoi ai-je besoin avant de commencer l'importation Excel ?

Pour utiliser IronXL en C# afin de lire des fichiers Excel, assurez-vous que les composants suivants sont installés sur votre ordinateur :

  1. Visual Studio - Il s'agit de l'IDE officiel pour le développement d'applications C# .NET. Visual Studio offre une excellente prise en charge IntelliSense et des outils de débogage qui facilitent le travail avec les fichiers Excel. Vous pouvez télécharger et installer Visual Studio depuis le site web de Microsoft . L'édition communautaire est gratuite et suffisante pour la plupart des besoins de développement.

  2. IronXL - Il s'agit de la bibliothèque qui vous aide à travailler avec des feuilles Excel à un emplacement donné en C#. Il doit être installé dans votre programme C# avant utilisation. IronXL peut être facilement téléchargé depuis le site web NuGet ou installé directement via l'interface de gestion des packages NuGet dans les outils Visual Studio. Vous pouvez également télécharger directement le fichier DLL .NET Excel si vous préférez une installation manuelle.

Pour les déploiements en production, vous devrez appliquer une clé de licence pour supprimer les filigranes et activer toutes les fonctionnalités. Le développement et les tests peuvent être effectués avec la version d'essai.

Quels espaces de noms dois-je ajouter à mon code ?

Une fois Visual Studio et IronXL installés, référencez l'assembly IronXL pour utiliser IronXL dans votre code source. Ajoutez la ligne de code suivante en haut du fichier dans le nouveau projet où les fonctions IronXL seront utilisées :

using IronXL;
using IronXL;
$vbLabelText   $csharpLabel

Cette importation d'espace de noms unique donne accès à toutes les fonctionnalités de base nécessaires aux opérations Excel. Si vous utilisez des fonctionnalités spécifiques d'Excel, comme des graphiques ou la mise en forme conditionnelle , vous devrez peut-être importer des espaces de noms supplémentaires depuis la bibliothèque IronXL.

Comment charger et ouvrir un fichier Excel ?

Les feuilles de calcul Microsoft Excel sont également appelées classeurs Excel. Chaque classeur contient plusieurs feuilles de calcul (également appelées feuilles), et une seule feuille de calcul contient des cellules tabulaires organisées en lignes et en colonnes avec leurs valeurs respectives. Pour ouvrir et lire un fichier Excel , chargez-le à l'aide de la classe WorkBook et de la méthode Load présentes dans la bibliothèque IronXL. Le code se présente comme suit :

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

// You can also load from a stream
using (var stream = File.OpenRead("test.xlsx"))
{
    WorkBook streamWorkbook = WorkBook.Load(stream);
}

// Or load CSV files with custom delimiters
WorkBook csvWorkbook = WorkBook.LoadCSV("data.csv", delimiter: ",");
// Supported Excel spreadsheet formats for reading include: XLSX, XLS, CSV, and TSV
WorkBook workbook = WorkBook.Load("test.xlsx");

// You can also load from a stream
using (var stream = File.OpenRead("test.xlsx"))
{
    WorkBook streamWorkbook = WorkBook.Load(stream);
}

// Or load CSV files with custom delimiters
WorkBook csvWorkbook = WorkBook.LoadCSV("data.csv", delimiter: ",");
$vbLabelText   $csharpLabel

Cela ouvre le fichier Excel dans la variable référençant l'instance du carnet de travail. Puisqu'un classeur peut contenir plusieurs feuilles de calcul, vous pouvez y accéder de différentes manières. Le code suivant ouvre la première feuille de calcul stockée dans la variable d'instance " sheet " :

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

// Or access by worksheet name
WorkSheet namedSheet = workbook.GetWorkSheet("Sheet1");

// Or by index (zero-based)
WorkSheet indexedSheet = workbook.WorkSheets[0];
// Get the first worksheet
WorkSheet sheet = workbook.WorkSheets.First();

// Or access by worksheet name
WorkSheet namedSheet = workbook.GetWorkSheet("Sheet1");

// Or by index (zero-based)
WorkSheet indexedSheet = workbook.WorkSheets[0];
$vbLabelText   $csharpLabel

Cela ouvrira la première feuille du fichier Excel, et maintenant les données Excel peuvent être lues de et écrites dans cette feuille. Pour des scénarios plus avancés, vous pourriez avoir besoin de gérer plusieurs feuilles de calcul ou de créer de nouvelles feuilles de calcul par programmation.

Fichier Excel ouvert

Feuille de calcul Excel présentant les données des employés, avec des colonnes pour le nom, la fonction et le salaire. Elle contient 5 fiches d'employés avec différents intitulés de poste et salaires. Exemple de fichier Excel contenant des informations sur les employés qui seront importées à l'aide de C#. Les données comprennent les noms, les titres des postes (directeur, responsable, employé, président) et les valeurs salariales correspondantes.

Comment puis-je lire les valeurs de cellules spécifiques après l'importation ?

Une fois le fichier Excel importé, il est prêt à lire les données. Lire les données du fichier Excel en C# en utilisant IronXL est très simple et facile. Vous pouvez lire les valeurs des cellules Excel en mentionnant simplement le numéro de référence de la cellule au format Excel standard (comme " A1 ", " B2 ", etc.). La bibliothèque offre plusieurs façons d'accéder aux valeurs des cellules en fonction du type de données attendu.

Le code ci-dessous récupère la valeur d'une cellule avec le numéro de référence "C2" :

// Select cells easily in Excel-notation and return the value
int cellValue = sheet["C2"].IntValue;

// Display the value
Console.WriteLine(cellValue);

// You can also access different data types
string textValue = sheet["A2"].StringValue;
decimal decimalValue = sheet["C2"].DecimalValue;
double doubleValue = sheet["C2"].DoubleValue;
DateTime dateValue = sheet["D2"].DateTimeValue;
bool boolValue = sheet["E2"].BoolValue;

// Check if cell is empty
bool isEmpty = sheet["F2"].IsEmpty;
// Select cells easily in Excel-notation and return the value
int cellValue = sheet["C2"].IntValue;

// Display the value
Console.WriteLine(cellValue);

// You can also access different data types
string textValue = sheet["A2"].StringValue;
decimal decimalValue = sheet["C2"].DecimalValue;
double doubleValue = sheet["C2"].DoubleValue;
DateTime dateValue = sheet["D2"].DateTimeValue;
bool boolValue = sheet["E2"].BoolValue;

// Check if cell is empty
bool isEmpty = sheet["F2"].IsEmpty;
$vbLabelText   $csharpLabel

La sortie est la suivante :

! Fenêtre de la console de débogage de Microsoft Visual Studio affichant le résultat d'une opération de lecture de fichier Excel, avec le chemin d'accès au fichier et un message de fin. Sortie de la console de débogage après la lecture réussie d'un fichier Excel en C#. Le programme a terminé son exécution et attend une saisie de l'utilisateur pour se fermer.

À présent, lisons les données d'une plage de cellules dans le fichier Excel ouvert. IronXL facilite la manipulation des plages de cellules grâce à une notation Excel familière. Le code se présente comme suit :

// Read from a range of cells elegantly.
foreach (var cell in sheet["A2:A6"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}

// You can also work with entire rows or columns
var row = sheet.GetRow(2); // Get row 3 (0-indexed)
foreach (var cell in row)
{
    Console.WriteLine($"Row cell value: {cell.Value}");
}

// Or get a column
var column = sheet.GetColumn(0); // Get column A
foreach (var cell in column)
{
    Console.WriteLine($"Column A value: {cell.Value}");
}
// Read from a range of cells elegantly.
foreach (var cell in sheet["A2:A6"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}

// You can also work with entire rows or columns
var row = sheet.GetRow(2); // Get row 3 (0-indexed)
foreach (var cell in row)
{
    Console.WriteLine($"Row cell value: {cell.Value}");
}

// Or get a column
var column = sheet.GetColumn(0); // Get column A
foreach (var cell in column)
{
    Console.WriteLine($"Column A value: {cell.Value}");
}
$vbLabelText   $csharpLabel

Le code est très simple, clair, et net. La plage de cellules peut être référencée avec une syntaxe simple comme indiqué dans une boucle foreach : sheet["A2:A6"] et chaque cellule peut être parcourue pour obtenir sa valeur. Vous verrez ici les noms de la colonne A, de la ligne 2 à la ligne 6, dans la sortie de la console :

! Console de débogage de Microsoft Visual Studio affichant la sortie de la lecture des cellules Excel A2 à A6, avec les noms : John, Sara, Peter, Mathew et Katherine Sortie de la console démontrant la lecture réussie d'une plage de cellules Excel (A2:A6) contenant des noms à l'aide de C#

Pour plus de détails sur la lecture et l'écriture des valeurs de cellules, consultez ce tutoriel sur la lecture de fichiers Excel dans un exemple C# . Vous pouvez également explorer des fonctionnalités avancées telles que l'application de formules ou l'utilisation de plages nommées .

Comment importer des feuilles de calcul entières en une seule fois ?

IronXL peut être utilisé pour lire les feuilles Excel à la fois en utilisant les index des lignes et des colonnes. Ceci est particulièrement utile lorsque vous devez traiter toutes les données d'une feuille de calcul ou lorsque vous convertissez des fichiers Excel vers d'autres formats comme CSV ou JSON. Les exemples de code IronXL suivants vous aident à obtenir l'intégralité des données d'un fichier Excel dans le même format sur la sortie de la console :

WorkBook workbook = WorkBook.Load("test.xlsx");
WorkSheet sheet = workbook.WorkSheets.First();

// Traverse all rows of Excel WorkSheet
for (int i = 0; i < sheet.Rows.Count(); i++)
{
    // Traverse all columns of specific Row
    for (int j = 0; j < sheet.Columns.Count(); j++)
    {
        // Get the values
        string val = sheet.Rows[i].Columns[j].Value.ToString();
        Console.Write("{0}\t", val);
    }
    Console.WriteLine();
}

// Alternative method using LINQ for more efficient processing
var allData = sheet.Rows.SelectMany(row => 
    row.Columns.Select(col => col.Value?.ToString() ?? "")).ToList();
WorkBook workbook = WorkBook.Load("test.xlsx");
WorkSheet sheet = workbook.WorkSheets.First();

// Traverse all rows of Excel WorkSheet
for (int i = 0; i < sheet.Rows.Count(); i++)
{
    // Traverse all columns of specific Row
    for (int j = 0; j < sheet.Columns.Count(); j++)
    {
        // Get the values
        string val = sheet.Rows[i].Columns[j].Value.ToString();
        Console.Write("{0}\t", val);
    }
    Console.WriteLine();
}

// Alternative method using LINQ for more efficient processing
var allData = sheet.Rows.SelectMany(row => 
    row.Columns.Select(col => col.Value?.ToString() ?? "")).ToList();
$vbLabelText   $csharpLabel

Pour les fichiers Excel volumineux, vous pouvez envisager d'utiliser les objets DataTable ou DataSet pour de meilleures performances et une manipulation des données plus facile :

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

// Process data using DataTable methods
foreach (DataRow row in dataTable.Rows)
{
    foreach (var item in row.ItemArray)
    {
        Console.Write($"{item}\t");
    }
    Console.WriteLine();
}
// Convert worksheet to DataTable for easier manipulation
DataTable dataTable = sheet.ToDataTable(true); // true = first row contains headers

// Process data using DataTable methods
foreach (DataRow row in dataTable.Rows)
{
    foreach (var item in row.ItemArray)
    {
        Console.Write($"{item}\t");
    }
    Console.WriteLine();
}
$vbLabelText   $csharpLabel

Fichier de sortie

La console de débogage de Microsoft Visual Studio affiche un tableau de données d'employés avec les colonnes Nom, Fonction et Salaire, présentant 5 enregistrements d'employés lus à partir d'un fichier Excel. La sortie de la console affiche correctement les données des employés importées du fichier Excel, avec une mise en forme appropriée indiquant les noms, les titres de poste et les informations salariales.

.

Quelles sont les prochaines étapes après l'importation des fichiers Excel ?

Cet article a démontré comment importer et lire un fichier Excel en C# sans avoir Microsoft Excel installé. Il présentait plusieurs façons de lire des données à partir d'une feuille de calcul Excel, depuis les cellules individuelles jusqu'aux feuilles de calcul entières. IronXL vous permet également de créer des fichiers Excel en C# sans qu'aucune installation d'Excel ne soit requise.

Après avoir importé avec succès vos données Excel, vous pourriez souhaiter explorer des fonctionnalités supplémentaires :

IronXL fournit une solution tout-en-un permettant d'implémenter par programmation toutes les tâches liées aux documents Microsoft Excel. Vous pouvez effectuer des calculs de formules , trier des chaînes de caractères ou des nombres, supprimer et ajouter des éléments, rechercher et remplacer, fusionner et dissocier des cellules , enregistrer des fichiers, et bien plus encore. Vous pouvez modifier les valeurs des cellules et définir leurs formats de données, ainsi que valider les données de la feuille de calcul. Il prend également en charge les fichiers CSV et vous permet de travailler en toute transparence avec les données Excel.

Pour les applications d'entreprise, envisagez d'explorer les options de déploiement pour différentes plateformes, notamment les conteneurs Docker , Azure Functions et AWS Lambda .

IronXL est disponible en version d'essai gratuite et peut être utilisé à des fins commerciales grâce à son pack Lite, disponible à partir de $799 uniquement. La bibliothèque propose une excellente documentation , des tutoriels et des exemples de code pour vous aider à démarrer rapidement avec les opérations sur les fichiers Excel dans vos applications C#.

Questions Fréquemment Posées

Comment puis-je importer et lire un fichier Excel en C# sans utiliser Interop ?

Vous pouvez importer et lire des fichiers Excel en C# en utilisant la bibliothèque IronXL. Chargez simplement le fichier Excel en utilisant WorkBook.Load("file.xlsx") pour accéder et traiter les données sans avoir besoin d'installer Microsoft Excel.

Avec quelles plateformes la bibliothèque IronXL est-elle compatible ?

IronXL est compatible avec tous les frameworks .NET et peut être utilisé sur plusieurs plateformes, y compris Windows, Linux, MacOS, Docker, Azure et AWS.

Puis-je utiliser IronXL pour éditer des fichiers Excel sans avoir Microsoft Excel installé ?

Oui, IronXL vous permet de créer et de modifier des fichiers Excel de manière programmatique en C# sans nécessiter l'installation de Microsoft Excel sur votre système.

Quels formats Excel IronXL peut-il gérer ?

IronXL supporte divers formats de fichiers Excel tels que XLS, XLSX, CSV, TSV, et bien d'autres, permettant une importation et une manipulation faciles des données.

Quelles sont les conditions préalables à l'utilisation de IronXL dans un projet C# ?

Pour utiliser IronXL, assurez-vous d'avoir Visual Studio installé. Vous pouvez ajouter IronXL à votre projet via le gestionnaire de packages NuGet ou en téléchargeant et en référant la DLL Excel .NET.

Comment puis-je charger un classeur Excel avec IronXL en C# ?

Pour charger un classeur Excel en C#, utilisez la méthode WorkBook.Load("path/to/file.xlsx") d'IronXL, qui vous permet d'ouvrir et de manipuler le classeur.

Est-il possible de gérer les formules Excel avec IronXL ?

Oui, IronXL peut traiter et recalculer les formules Excel de manière transparente chaque fois qu'une feuille est éditée, garantissant l'exactitude des calculs de données.

Comment lire les données d'une cellule spécifique en utilisant IronXL ?

Pour lire les données d'une cellule spécifique, utilisez la syntaxe IronXL comme sheet["B2"].StringValue pour obtenir la valeur de la cellule B2.

Puis-je itérer sur une plage de cellules dans une feuille Excel en utilisant IronXL ?

Oui, vous pouvez itérer sur une plage de cellules en utilisant IronXL avec une syntaxe telle que foreach (var cell in sheet["A1:C3"]) pour traiter chaque cellule individuellement.

Comment IronXL peut-il être intégré aux applications ASP.NET ?

IronXL peut être facilement intégré aux applications ASP.NET en ajoutant la bibliothèque via NuGet et en la référant dans votre projet, permettant la manipulation de fichiers Excel dans les applications web.

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