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 des classeurs à l'aide de WorkBook.Load(), d'accéder aux feuilles de calcul et de lire les valeurs des cellules avec une syntaxe intuitive comme sheet["A1"].
Ce tutoriel explore l'utilisation 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?
- Ouvrez, lisez et recherchez des données aux formats XLS/XLSX/CSV/TSV à l'aide de LoadSpreadsheets .
- Exportez vos feuilles de calcul Excel vers plusieurs formats grâce à la fonction Enregistrer et exporter .
- Chiffrez et déchiffrez des fichiers avec des mots de passe en utilisant des fonctionnalités sécurisées .
- Travailler avec des feuilles Excel en tant qu'objets
DataSetetDataTablevia l'intégration DataSet . - Les formules Excel se recalculent automatiquement et prennent en charge les fonctions mathématiques .
- Modifiez les données de la feuille de calcul grâce à une syntaxe de plage intuitive comme
WorkSheet["A1:B10"]. - Trier les plages de cellules , les colonnes et les lignes .
- Mettez en forme les cellules avec la police , l'arrière-plan , la bordure , l'alignement et les formats numériques .
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 :
- 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
JetBrainsReSharper& Rider . Pour obtenir des conseils supplémentaires sur la configuration, reportez-vous à la présentation générale " Premiers pas " . - 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;
' Add reference to the IronXL library
Imports IronXL
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
Imports IronXL.Formatting ' For cell styling
Imports IronXL.Drawing ' For images and charts
Imports System.Data ' For DataSet/DataTable operations
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 WorkBook de la classe Load . 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);
// }
' Supported Excel spreadsheet formats for reading include: XLSX, XLS, CSV, and TSV
Dim workbook As WorkBook = WorkBook.Load("test.xlsx")
' You can also load from streams for web applications
' Using stream = File.OpenRead("test.xlsx")
' Dim workbook As WorkBook = WorkBook.Load(stream)
' End Using
Cela initialise le classeur en tant qu'instance WorkBook. Pour ouvrir un WorkSheet spécifique, récupérez-le 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
' Access the first worksheet in the workbook
Dim sheet As WorkSheet = workbook.WorkSheets.First()
' Alternative ways to access worksheets
Dim sheetByIndex As WorkSheet = workbook.WorkSheets(0) ' By index
Dim sheetByName As WorkSheet = workbook.GetWorkSheet("Sheet1") ' By name
Ceci permet d'accéder à la première feuille du fichier Excel, prête pour la lecture et l'écriture.
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}");
}
' Select the cell using Excel notation and retrieve its integer value
Dim cellValue As Integer = sheet("C2").IntValue
' You can also retrieve values in different formats
Dim textValue As String = sheet("C2").StringValue
Dim decimalValue As Decimal = sheet("C2").DecimalValue
Dim dateValue As DateTime = sheet("C2").DateTimeValue
Dim boolValue As Boolean = sheet("C2").BoolValue
' Display the value in the console
Console.WriteLine($"Cell C2 contains: {cellValue}")
' Check if cell is empty before reading
If Not sheet("C2").IsEmpty Then
Console.WriteLine($"Cell value: {sheet("C2").Value}")
End If
La sortie est la suivante :
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}");
}
' Iterate through a range of cells and display their address and text content
For Each cell In sheet("A2:A6")
Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text)
Next
' Read an entire column
For Each cell In sheet.GetColumn(0) ' Column A
If Not cell.IsEmpty Then
Console.WriteLine($"Column A value: {cell.Text}")
End If
Next
' Read an entire row
For Each cell In sheet.GetRow(1) ' Row 2
Console.WriteLine($"Row 2 value: {cell.Text}")
Next
Chaque valeur de la plage de cellules A2:A6 est consultée et imprimée sur la console.
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"]}");
}
' Convert worksheet to DataTable for easier data manipulation
Dim dataTable As DataTable = sheet.ToDataTable(True) ' True = first row contains headers
' Access data using DataTable methods
For Each row As DataRow In dataTable.Rows
Console.WriteLine($"Employee: {row("Name")}, Salary: {row("Salary")}")
Next
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";
' Create a new workbook with the XLSX format
Dim workBook As New WorkBook(ExcelFileFormat.XLSX)
' Alternative: Create with XLS format for compatibility
Dim xlsWorkBook As New WorkBook(ExcelFileFormat.XLS)
' Set workbook metadata
workBook.Metadata.Title = "Employee Data"
workBook.Metadata.Author = "Your Name"
workBook.Metadata.Keywords = "employees, salary, data"
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");
' Create a worksheet named "GDPByCountry" in the workbook
Dim workSheet As WorkSheet = workBook.CreateWorkSheet("GDPByCountry")
' Create multiple worksheets at once
Dim sheet2 As WorkSheet = workBook.CreateWorkSheet("PopulationData")
Dim sheet3 As WorkSheet = workBook.CreateWorkSheet("Summary")
' Copy an existing worksheet
Dim copiedSheet As WorkSheet = workSheet.CopySheet("GDPByCountryCopy")
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");
' 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.99D ' 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")
Le résultat final est :
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
' Convert between formats
Dim workbook As 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
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}");
}
Imports System
Try
Dim workbook As WorkBook = WorkBook.Load("test.xlsx")
Dim sheet As WorkSheet = workbook.GetWorkSheet("Sheet1")
' Check if sheet exists
If sheet Is Nothing Then
Console.WriteLine("Worksheet not found!")
Return
End If
' Process data
Dim value = sheet("A1").Value
Catch ex As Exception
Console.WriteLine($"Error reading Excel file: {ex.Message}")
End Try
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 forfait 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.



