Passer au contenu du pied de page
UTILISATION D'IRONXL

Comment importer, lire et manipuler facilement des données de fichiers MS Excel en C# à l'aide d'IronXL

Travailler avec des fichiers Microsoft Excel est une exigence quotidienne pour de nombreux développeurs .NET. Qu'il s'agisse d'importer des données clients, de traiter des rapports financiers ou de migrer des données de feuilles de calcul ou de classeurs Excel vers des bases de données, les développeurs ont besoin d'un moyen fiable de lire des fichiers Excel ou d'exporter des fichiers Excel (XLSX) sans dépendances complexes ou sans avoir besoin d'installer Excel. IronXL offre une solution simple qui fonctionne sur toutes les plateformes, éliminant ainsi la nécessité d'installer Microsoft Office.

Comment importer, lire et manipuler facilement des données de fichiers MS Excel en C# à l'aide d'IronXL : Image 1 - IronXL

Comment démarrer avec C# ; importer des données Excel?

Se lancer dans l'importation d'Excel en C# ne prend que quelques minutes avec IronXL. La bibliothèque Excel gère de manière transparente les anciens formats XLS et les formats modernes XLSX, ainsi que les formats CSV, TSV et d'autres formats de feuilles de calcul. Contrairement aux solutions qui reposent sur Microsoft.Office.Interop.Excel, IronXL fonctionne de manière indépendante sur n'importe quelle plateforme .NET ou .NET Core.

Comment importer, lire et manipuler facilement des données de fichiers MS Excel en C# à l'aide d'IronXL : Image 2 - Cross Platform

Tout d'abord, installez IronXL via le gestionnaire de paquets NuGet ou sélectionnez Gérer les paquets NuGet dans Visual Studio :

Install-Package IronXL.Excel

Comment importer, lire et manipuler facilement des données de fichiers MS Excel en C# à l'aide d'IronXL : Image 3 - Installation

Une fois installé, l'importation de données Excel devient remarquablement simple :

using IronXL;
static void Main(string[] args)
{
 // Load any Excel file
 WorkBook workBook = WorkBook.Load("ProductData.xlsx");
 // Access the first worksheet
 WorkSheet sheet = workBook.WorkSheets[0];
 // Read a cell value
 string value = sheet["B1"].StringValue;
 Console.WriteLine(value);
}
using IronXL;
static void Main(string[] args)
{
 // Load any Excel file
 WorkBook workBook = WorkBook.Load("ProductData.xlsx");
 // Access the first worksheet
 WorkSheet sheet = workBook.WorkSheets[0];
 // Read a cell value
 string value = sheet["B1"].StringValue;
 Console.WriteLine(value);
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Ce code démontre le flux de travail principal : chargement d'un classeur, accès à une feuille de calcul et lecture des valeurs des cellules. La méthode WorkBook.Load() détecte automatiquement le format du fichier, qu'il s'agisse de XLS, XLSX ou même CSV. La syntaxe intuitive de l'indexeur sheet["B1"] rend l'accès aux cellules aussi naturel que le travail avec des tableaux. Pour les opérations plus complexes, consultez la référence API IronXL pour obtenir une documentation complète.

Entrée d'exemple

Comment importer, lire et manipuler facilement des données de fichiers MS Excel en C# à l'aide d'IronXL : Image 4 - Entrée Excel

Sortie

Comment importer, lire et manipuler facilement des données de fichiers MS Excel en C# à l'aide d'IronXL : Image 5 - Sortie console

Comment lire des données Excel dans des objets C#?

Les applications réelles ont besoin de plus que de valeurs unicellulaires. IronXL excelle dans l'importation d'ensembles de données entiers et leur conversion en objets C# utilisables. Lorsque vous devez importer des fichiers Excel avec des données structurées, la bibliothèque propose plusieurs approches.

// Load the Excel file
WorkBook workBook = WorkBook.Load("ProductData.xlsx");
WorkSheet sheet = workBook.DefaultWorkSheet;
// Read a range of cells
 var products = new List<Product>();
 foreach (var row in sheet.Rows)
 {
     var product = new Product
     {
         Id = row.Columns[0].IntValue,
         Name = row.Columns[1].StringValue,
         Price = row.Columns[2].DecimalValue,
         IsAvailable = row.Columns[3].BoolValue
     };
     products.Add(product);
 }
 foreach (var product in products)
 {
     Console.WriteLine($"Id: {product.Id}, Name: {product.Name}, Price: {product.Price}, Available: {product.IsAvailable}");
 }
// Load the Excel file
WorkBook workBook = WorkBook.Load("ProductData.xlsx");
WorkSheet sheet = workBook.DefaultWorkSheet;
// Read a range of cells
 var products = new List<Product>();
 foreach (var row in sheet.Rows)
 {
     var product = new Product
     {
         Id = row.Columns[0].IntValue,
         Name = row.Columns[1].StringValue,
         Price = row.Columns[2].DecimalValue,
         IsAvailable = row.Columns[3].BoolValue
     };
     products.Add(product);
 }
 foreach (var product in products)
 {
     Console.WriteLine($"Id: {product.Id}, Name: {product.Name}, Price: {product.Price}, Available: {product.IsAvailable}");
 }
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Cet exemple montre comment itérer à travers les lignes et mapper des données Excel vers des objets C# fortement typés. Les propriétés typées telles que IntValue, StringValue et DecimalValue gèrent automatiquement la conversion de type. Cette approche élimine l'analyse manuelle et réduit les erreurs lorsque l'on travaille avec différents types de données. De nombreux développeurs sur Stack Overflow apprécient cette approche sécurisée en termes de type pour l'importation de données Excel.

Sortie

Comment importer, lire et manipuler facilement des données de fichiers MS Excel en C# à l'aide d'IronXL : Image 6 - Sortie d'objet

Pour un accès aux données plus élégant, IronXL prend en charge les opérations de plage :

// Read specific ranges of ProductData.xlsx file
Range dataRange = sheet["A1:D5"];
// Calculate aggregates directly
decimal sum = sheet["C1:C5"].Sum();
Console.WriteLine($"Sum of C1:C5: {sum}");
decimal max = sheet["C1:C5"].Max(c => c.DecimalValue);
Console.WriteLine($"Max of C1:C5: {max}");
// Use LINQ for filtering
var highValueOrders = dataRange
    .Where(cell => cell.DecimalValue > 100)
    .Select(cell => cell.Value)
    .ToList();
Console.WriteLine("High value orders (>100):");
// Print the high value orders to the console
foreach (var order in highValueOrders)
{
    Console.WriteLine(order);
}
// Read specific ranges of ProductData.xlsx file
Range dataRange = sheet["A1:D5"];
// Calculate aggregates directly
decimal sum = sheet["C1:C5"].Sum();
Console.WriteLine($"Sum of C1:C5: {sum}");
decimal max = sheet["C1:C5"].Max(c => c.DecimalValue);
Console.WriteLine($"Max of C1:C5: {max}");
// Use LINQ for filtering
var highValueOrders = dataRange
    .Where(cell => cell.DecimalValue > 100)
    .Select(cell => cell.Value)
    .ToList();
Console.WriteLine("High value orders (>100):");
// Print the high value orders to the console
foreach (var order in highValueOrders)
{
    Console.WriteLine(order);
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

La classe Range permet d'accéder à plusieurs cellules simultanément, à la manière d'une collection. Grâce à la compatibilité LINQ, les développeurs peuvent filtrer, transformer et agréger des données Excel en utilisant des modèles C# familiers. Les méthodes d'agrégation intégrées, telles que Sum() et Max(), opèrent directement sur les plages de cellules sans avoir à charger au préalable toutes les données en mémoire.

Sortie

Comment importer, lire et manipuler facilement des données de fichiers MS Excel en C# à l'aide d'IronXL : Image 7 - Sortie de plage

Comment convertir Excel en DataTable?

La conversion de DataTable est essentielle pour les opérations de base de données et les scénarios de liaison de données. IronXL fournit des méthodes intégrées qui gèrent efficacement la conversion de Excel en DataTable.Cette fonctionnalité est particulièrement utile lorsque vous devez importer des feuilles de calcul Excel dans SQL Server ou d'autres bases de données.

using System.Data;
// Load Excel file
WorkBook workBook = WorkBook.Load("inventory.xlsx");
// Select first Excel worksheet
WorkSheet sheet = workBook.WorkSheets.First();
// Convert to DataTable with headers
DataTable dataTable = sheet.ToDataTable(true);
// The DataTable is ready for database operations
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connectionString))
{
    bulkCopy.DestinationTableName = "Inventory";
    bulkCopy.WriteToServer(dataTable);
}
using System.Data;
// Load Excel file
WorkBook workBook = WorkBook.Load("inventory.xlsx");
// Select first Excel worksheet
WorkSheet sheet = workBook.WorkSheets.First();
// Convert to DataTable with headers
DataTable dataTable = sheet.ToDataTable(true);
// The DataTable is ready for database operations
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connectionString))
{
    bulkCopy.DestinationTableName = "Inventory";
    bulkCopy.WriteToServer(dataTable);
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

La méthode ToDataTable() accepte un paramètre booléen indiquant si la première ligne contient des en-têtes. Lorsqu'il est défini sur true, IronXL utilise automatiquement les valeurs de la première ligne comme noms de colonne dans le DataTable. Cette table de données s'intègre parfaitement aux opérations ADO.NET, à Entity Framework et aux contrôles de liaison de données. La documentation de Microsoft sur SqlBulkCopy montre l'efficacité avec laquelle ce modèle gère les importations de données à grande échelle.

Pour mieux contrôler le processus de conversion :

// Custom DataTable conversion
DataTable customTable = new DataTable();
// Define columns based on Excel structure
for (int col = 0; col < sheet.ColumnCount; col++)
{
    customTable.Columns.Add($"Column{col + 1}", typeof(string));
}
// Import data with validation
foreach (var row in sheet.Rows)
{
    var dataRow = customTable.NewRow();
    for (int col = 0; col < sheet.ColumnCount; col++)
    {
        dataRow[col] = row.Columns[col].Value ?? DBNull.Value;
    }
    customTable.Rows.Add(dataRow);
}
// Print column headers
foreach (DataColumn column in customTable.Columns)
{
    Console.Write($"{column.ColumnName}\t");
}
Console.WriteLine();
// Print each row
foreach (DataRow row in customTable.Rows)
{
    foreach (var item in row.ItemArray)
    {
        Console.Write($"{item}\t");
    }
    Console.WriteLine();
}
// Custom DataTable conversion
DataTable customTable = new DataTable();
// Define columns based on Excel structure
for (int col = 0; col < sheet.ColumnCount; col++)
{
    customTable.Columns.Add($"Column{col + 1}", typeof(string));
}
// Import data with validation
foreach (var row in sheet.Rows)
{
    var dataRow = customTable.NewRow();
    for (int col = 0; col < sheet.ColumnCount; col++)
    {
        dataRow[col] = row.Columns[col].Value ?? DBNull.Value;
    }
    customTable.Rows.Add(dataRow);
}
// Print column headers
foreach (DataColumn column in customTable.Columns)
{
    Console.Write($"{column.ColumnName}\t");
}
Console.WriteLine();
// Print each row
foreach (DataRow row in customTable.Rows)
{
    foreach (var item in row.ItemArray)
    {
        Console.Write($"{item}\t");
    }
    Console.WriteLine();
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Cette approche offre une certaine souplesse pour la transformation des données lors de l'importation. Les valeurs nulles sont traitées avec élégance en les convertissant en DBNull.Value, ce qui garantit la compatibilité avec les opérations de base de données.

Sortie

Comment importer, lire et manipuler facilement des données de fichiers MS Excel en C# à l'aide d'IronXL : Image 8 - Sortie DataTable

Quelles sont les fonctionnalités avancées qui permettent la manipulation des données ? IronXL va au-delà de la lecture de base avec des fonctionnalités puissantes pour des scénarios complexes. La bibliothèque conserve les formules Excel, ce qui permet de mettre à jour les calculs de manière dynamique. Pour les développeurs qui travaillent avec [des classeurs Excel complexes](/how-to/create-spreadsheet/), cela permet de maintenir l'intégrité des données tout au long du processus d'importation. [Comment importer, lire et manipuler facilement des données de fichiers MS Excel en C# à l'aide d'IronXL : Image 9 - Caractéristiques](/static-assets/excel/blog/csharp-import-excel/csharp-import-excel-9.webp) ```cs // Read calculated values from formulas WorkSheet sheet = workBook.GetWorkSheet("Reports"); decimal calculatedTotal = sheet["E10"].DecimalValue; // Reads formula result // Formulas remain intact string formula = sheet["E10"].Formula; // Returns "=SUM(E2:E9)" ``` La prise en charge des formules signifie que l'importation de fichiers Excel contenant des calculs complexes fonctionne sans recréer la logique de l'entreprise. La bibliothèque évalue automatiquement les formules et renvoie les valeurs calculées tout en préservant la structure originale de la formule. Cette fonctionnalité s'avère inestimable lorsque vous devez [lire des fichiers Excel](/examples/read-excel/) contenant des modèles financiers ou des modèles de rapports. La compatibilité multiplateforme garantit un comportement cohérent dans les environnements Windows, Linux, macOS et les conteneurs. Cette flexibilité rend IronXL idéal pour les déploiements dans le cloud et les architectures microservices où l'installation d'Office n'est pas envisageable. La [ documentation de la .NET Foundation](https://docs.microsoft.com/en-us/dotnet/core/introduction) met en évidence la manière dont les applications .NET modernes bénéficient de cette indépendance de plateforme lors de l'importation de données Excel. L'intégration d'Entity Framework rationalise les flux de travail des bases de données pour les scénarios d'importation Excel en C# : ```cs var products = sheet.Rows.Skip(1) .Select(row => new Product { Name = row.Columns[0].StringValue, Price = row.Columns[1].DecimalValue }) .ToList(); using (var context = new AppDbContext()) { context.Products.AddRange(products); await context.SaveChangesAsync(); } ``` Ce modèle permet de créer des pipelines directs entre Excel et la base de données avec un minimum de code, ce qui est parfait pour les processus de migration de données et d'ETL. Pour des fonctionnalités complètes de manipulation d'Excel, téléchargez IronXL.Excel pour rationaliser vos flux de travail d'importation de données. ## Conclusion IronXL transforme l'importation de données Excel d'un défi complexe en un code C# simple. L'API intuitive de la bibliothèque, sa prise en charge complète des formats et sa compatibilité multiplateforme en font un choix pratique pour les applications de production nécessitant la manipulation de fichiers Excel. [Comment importer, lire et manipuler facilement des données de fichiers MS Excel en C# à l'aide d'IronXL : Image 10 - Licences](/static-assets/excel/blog/csharp-import-excel/csharp-import-excel-10.webp) Prêt à importer des fichiers Excel dans vos projets C# ? [Démarrez votre essai gratuit](trial-license) pour explorer toutes les capacités d'IronXL. Pour des conseils de mise en œuvre détaillés, consultez la [documentation complète](/docs/) ou explorez d'autres tutoriels Excel pour des scénarios avancés. Pour les déploiements en production, [consultez les options de licence](/licensing/) pour trouver ce qui convient le mieux à votre équipe.

Questions Fréquemment Posées

Comment importer des données Excel en C# ?

Vous pouvez utiliser IronXL pour importer facilement des données Excel en C#, sans avoir besoin que Microsoft Excel soit installé sur votre système.

Quels sont les avantages d'utiliser IronXL pour la manipulation de fichiers Excel ?

IronXL permet aux développeurs de lire, écrire et manipuler des fichiers Excel en C# sans dépendances complexes, et il fonctionne sur différentes plateformes.

Ai-je besoin d'installer Microsoft Office pour utiliser IronXL ?

Non, IronXL élimine la nécessité d'installer Microsoft Office, ce qui vous permet de travailler avec des fichiers Excel directement dans vos applications C#.

IronXL peut-il gérer les formats de fichiers XLSX et CSV ?

Oui, IronXL prend en charge divers formats de fichiers Excel, notamment XLSX et CSV, ce qui le rend polyvalent pour différents besoins de traitement de données.

IronXL est-il adapté au traitement de fichiers Excel volumineux ?

Oui, IronXL est conçu pour traiter efficacement les fichiers Excel volumineux, ce qui permet aux développeurs de traiter des ensembles de données étendus sans problème de performance.

Quelles sont les plateformes prises en charge par IronXL ?

IronXL est compatible avec plusieurs plateformes, ce qui permet le développement et le déploiement multiplateforme d'applications manipulant des fichiers Excel.

Comment IronXL simplifie-t-il la migration des données d'Excel vers les bases de données ?

IronXL fournit des méthodes simples pour lire et exporter des données à partir de feuilles Excel, ce qui facilite le transfert de données vers des bases de données sans codage complexe.

Puis-je utiliser IronXL pour automatiser la génération de rapports Excel ?

Oui, IronXL permet l'automatisation de la génération de rapports Excel, ce qui vous permet de créer et de manipuler par programme des fichiers Excel en C#.

IronXL convient-il à la fois aux applications à petite échelle et aux applications d'entreprise ?

IronXL est polyvalent et évolutif, ce qui le rend adapté à la fois aux projets à petite échelle et aux grandes applications de niveau entreprise nécessitant la manipulation de fichiers 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