C# Excel Interop Workaround
De nombreux projets utilisent Excel pour communiquer clairement, mais si vous utilisez Microsoft.Office.Interop.Excel, alors vous avez probablement déjà dû faire face à de nombreuses lignes de code compliquées. Dans ce tutoriel, nous utiliserons IronXL comme solution de contournement pour l'interopérabilité Excel en C#. Vous pouvez lire un fichier Excel, créer un fichier Excel, modifier ses données et même convertir Excel en PDF — tout cela sans Interop.
- Télécharger Excel sans bibliothèque d'interopérabilité
- Accéder à un fichier Excel en C#
- Créez un nouveau fichier Excel et insérez-y des données par programmation.
- Modifier des fichiers existants, mettre à jour et remplacer les valeurs des cellules, supprimer des lignes, et bien plus encore
Comment utiliser Excel Interop autrement
- Installez une bibliothèque Excel pour traiter les fichiers Excel.
- Ouvrez le fichier
Workbooket ajoutez le fichier Excel actuel. - Définir la feuille de calcul par défaut.
- Lisez la valeur dans le classeur Excel.
- Traiter et afficher la valeur.
Étape 1
1. Téléchargez la bibliothèque IronXL
Téléchargez la bibliothèque IronXL ou installez-la avec NuGet pour accéder à la bibliothèque gratuite, puis suivez pas à pas ce tutoriel sur l'utilisation d'Excel sans Interop. Des licences sont disponibles si vous souhaitez déployer votre projet en production.
Install-Package IronXL.Excel
Didacticiel de prise en main
2. Accéder aux données du fichier Excel
Pour développer des applications métier, nous avons besoin d'un accès simple et parfait aux données des fichiers Excel et de la possibilité de les manipuler par programmation en fonction de diverses exigences. Avec IronXL, utilisez la fonction WorkBook.Load(), qui permet d'accéder à la lecture d'un fichier Excel spécifique.
Après avoir accédé au classeur, vous pouvez ensuite choisir une feuille de calcul spécifique à l'aide de la fonction WorkBook.GetWorkSheet(). Vous disposez désormais de toutes les données du fichier Excel. Vous trouverez ci-dessous un exemple illustrant comment nous avons utilisé ces fonctions pour obtenir des données de fichier Excel dans un projet C#.
// Import the IronXL library to access its functionality
using IronXL;
static void Main(string[] args)
{
// Access Excel file
WorkBook wb = WorkBook.Load("sample.xlsx");
// Access WorkSheet of Excel file
WorkSheet ws = wb.GetWorkSheet("Sheet1");
// Get a specific cell value, convert it to a string, and print it
string a = ws["A5"].Value.ToString();
Console.WriteLine("Getting Single Value:\n\n Value of Cell A5: {0}", a);
Console.WriteLine("\nGetting Many Cells Value using Loop:\n");
// Get multiple cell values using range function and iterate through them
foreach (var cell in ws["B2:B10"])
{
Console.WriteLine(" Value is: {0}", cell.Text);
}
Console.ReadKey(); // Pause the console to view output
}
// Import the IronXL library to access its functionality
using IronXL;
static void Main(string[] args)
{
// Access Excel file
WorkBook wb = WorkBook.Load("sample.xlsx");
// Access WorkSheet of Excel file
WorkSheet ws = wb.GetWorkSheet("Sheet1");
// Get a specific cell value, convert it to a string, and print it
string a = ws["A5"].Value.ToString();
Console.WriteLine("Getting Single Value:\n\n Value of Cell A5: {0}", a);
Console.WriteLine("\nGetting Many Cells Value using Loop:\n");
// Get multiple cell values using range function and iterate through them
foreach (var cell in ws["B2:B10"])
{
Console.WriteLine(" Value is: {0}", cell.Text);
}
Console.ReadKey(); // Pause the console to view output
}
' Import the IronXL library to access its functionality
Imports Microsoft.VisualBasic
Imports IronXL
Shared Sub Main(ByVal args() As String)
' Access Excel file
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
' Access WorkSheet of Excel file
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
' Get a specific cell value, convert it to a string, and print it
Dim a As String = ws("A5").Value.ToString()
Console.WriteLine("Getting Single Value:" & vbLf & vbLf & " Value of Cell A5: {0}", a)
Console.WriteLine(vbLf & "Getting Many Cells Value using Loop:" & vbLf)
' Get multiple cell values using range function and iterate through them
For Each cell In ws("B2:B10")
Console.WriteLine(" Value is: {0}", cell.Text)
Next cell
Console.ReadKey() ' Pause the console to view output
End Sub
Ce code produira le résultat suivant :
Le fichier Excel ressemble à ceci :
Nous pouvons voir que notre fichier Excel, sample.xlsx, contient small business dans la cellule A5. Les autres valeurs de B2 à B10 sont identiques et affichées dans la sortie.
Ensembles de données et tableaux de données
Nous pouvons également travailler avec des fichiers Excel en tant qu'ensemble de données et tableaux de données en suivant ces instructions.
// Access WorkBook and WorkSheet
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
// Convert workbook to DataSet
DataSet ds = wb.ToDataSet();
// Convert worksheet to DataTable
DataTable dt = ws.ToDataTable(true);
// Access WorkBook and WorkSheet
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
// Convert workbook to DataSet
DataSet ds = wb.ToDataSet();
// Convert worksheet to DataTable
DataTable dt = ws.ToDataTable(true);
' Access WorkBook and WorkSheet
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
' Convert workbook to DataSet
Dim ds As DataSet = wb.ToDataSet()
' Convert worksheet to DataTable
Dim dt As DataTable = ws.ToDataTable(True)
Vous pouvez en savoir plus sur l'utilisation des objets DataSet et DataTables d'Excel , en consultant les exemples de code et les explications relatives au processus.
Nous allons maintenant aborder un autre aspect, à savoir la création d'un nouveau fichier Excel dans notre projet C#.
3. Créer un nouveau fichier Excel
Nous pouvons facilement créer une nouvelle feuille de calcul Excel et y insérer des données par programmation dans notre projet C#. Pour ce faire, IronXL fournit la fonction WorkBook.Create(), qui crée un nouveau fichier Excel.
Nous pouvons ensuite créer autant de feuilles de calcul nécessaires en utilisant la fonction WorkBook.CreateWorkSheet().
Ensuite, nous pouvons également insérer des données, comme le montre l'exemple ci-dessous :
// Import the IronXL library
using IronXL;
static void Main(string[] args)
{
// Create a new WorkBook
WorkBook wb = WorkBook.Create();
// Create a new WorkSheet in the workbook
WorkSheet ws = wb.CreateWorkSheet("sheet1");
// Insert data into cells
ws["A1"].Value = "New Value A1";
ws["B2"].Value = "New Value B2";
// Save the newly created Excel file
wb.SaveAs("NewExcelFile.xlsx");
}
// Import the IronXL library
using IronXL;
static void Main(string[] args)
{
// Create a new WorkBook
WorkBook wb = WorkBook.Create();
// Create a new WorkSheet in the workbook
WorkSheet ws = wb.CreateWorkSheet("sheet1");
// Insert data into cells
ws["A1"].Value = "New Value A1";
ws["B2"].Value = "New Value B2";
// Save the newly created Excel file
wb.SaveAs("NewExcelFile.xlsx");
}
' Import the IronXL library
Imports IronXL
Shared Sub Main(ByVal args() As String)
' Create a new WorkBook
Dim wb As WorkBook = WorkBook.Create()
' Create a new WorkSheet in the workbook
Dim ws As WorkSheet = wb.CreateWorkSheet("sheet1")
' Insert data into cells
ws("A1").Value = "New Value A1"
ws("B2").Value = "New Value B2"
' Save the newly created Excel file
wb.SaveAs("NewExcelFile.xlsx")
End Sub
Le code ci-dessus créera un nouveau fichier Excel nommé NewExcelFile.xlsx et insérera de nouvelles données dans les cellules aux adresses A1 et B2 avec les valeurs New Value A1 et New Value B2 respectivement. Avec cette configuration, vous pouvez insérer des données de la même manière, autant que nécessaire.
Remarque : Si vous créez un nouveau fichier Excel ou si vous modifiez un fichier existant, n'oubliez pas de l'enregistrer comme indiqué dans l'exemple ci-dessus.
Approfondissez vos connaissances sur la création de nouvelles feuilles de calcul Excel à l'aide de C# et testez le code dans votre projet.
4. Modifier le fichier Excel existant
Nous pouvons modifier les fichiers Excel existants et y insérer des données mises à jour par programmation. Lors des modifications de fichiers Excel, nous verrons les aspects suivants :
- Mettre à jour la valeur de la cellule
- Remplacer les anciennes valeurs par les nouvelles
- Supprimer des lignes ou des colonnes
Voyons comment mettre en œuvre les sujets ci-dessus dans notre projet C#.
Mettre à jour la valeur de la cellule
Il est très simple de mettre à jour la valeur d'une cellule d'une feuille de calcul Excel existante. Il suffit d'accéder au fichier Excel du projet, de spécifier sa feuille de calcul, puis de mettre à jour ses données comme indiqué dans l'exemple ci-dessous :
// Import the IronXL library
using IronXL;
static void Main(string[] args)
{
// Access the WorkBook and WorkSheet
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
// Update A3 cell value
ws["A3"].Value = "New Value of A3";
// Save the updated Excel file
wb.SaveAs("sample.xlsx");
}
// Import the IronXL library
using IronXL;
static void Main(string[] args)
{
// Access the WorkBook and WorkSheet
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
// Update A3 cell value
ws["A3"].Value = "New Value of A3";
// Save the updated Excel file
wb.SaveAs("sample.xlsx");
}
' Import the IronXL library
Imports IronXL
Shared Sub Main(ByVal args() As String)
' Access the WorkBook and WorkSheet
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
' Update A3 cell value
ws("A3").Value = "New Value of A3"
' Save the updated Excel file
wb.SaveAs("sample.xlsx")
End Sub
Le code ci-dessus mettra à jour la valeur de la cellule A3 avec New Value of A3.
Nous pouvons également mettre à jour plusieurs cellules avec une valeur statique, en utilisant la fonction range :
ws["A3:C3"].Value = "New Value";
ws["A3:C3"].Value = "New Value";
ws("A3:C3").Value = "New Value"
Cela mettra à jour la ligne numéro 3 de A3 à C3 cellules avec le New Value dans le fichier Excel.
Apprenez-en davantage sur l'utilisation de la fonction Range en C# grâce à ces exemples.
Remplacer les valeurs des cellules
L'un des atouts d' IronXL est sa capacité à remplacer facilement old values par new values dans les fichiers Excel existants, couvrant tous les aspects suivants :
- Remplacer les valeurs d'une feuille de calcul complète :
ws.Replace("old value", "new value");
ws.Replace("old value", "new value");
ws.Replace("old value", "new value")
- Remplacer les valeurs d'une ligne spécifique :
ws.Rows[RowIndex].Replace("old value", "new value");
ws.Rows[RowIndex].Replace("old value", "new value");
ws.Rows(RowIndex).Replace("old value", "new value")
- Remplacer les valeurs d'une colonne spécifique :
ws.Columns[ColumnIndex].Replace("old value", "new Value");
ws.Columns[ColumnIndex].Replace("old value", "new Value");
ws.Columns(ColumnIndex).Replace("old value", "new Value")
- Remplacer les valeurs dans une plage spécifique :
ws["From:To"].Replace("old value", "new value");
ws["From:To"].Replace("old value", "new value");
ws("From:To").Replace("old value", "new value")
Prenons un exemple pour bien comprendre comment utiliser les fonctions ci-dessus dans notre projet C# afin de remplacer les valeurs. Dans cet exemple, nous utiliserons la fonction replace pour remplacer une valeur dans une plage spécifique.
// Import the IronXL library
using IronXL;
static void Main(string[] args)
{
// Access the WorkBook and WorkSheet
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
// Specify a range from B5 to G5 and replace "Normal" value with "Good"
ws["B5:G5"].Replace("Normal", "Good");
// Save the updated Excel file
wb.SaveAs("sample.xlsx");
}
// Import the IronXL library
using IronXL;
static void Main(string[] args)
{
// Access the WorkBook and WorkSheet
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
// Specify a range from B5 to G5 and replace "Normal" value with "Good"
ws["B5:G5"].Replace("Normal", "Good");
// Save the updated Excel file
wb.SaveAs("sample.xlsx");
}
' Import the IronXL library
Imports IronXL
Shared Sub Main(ByVal args() As String)
' Access the WorkBook and WorkSheet
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
' Specify a range from B5 to G5 and replace "Normal" value with "Good"
ws("B5:G5").Replace("Normal", "Good")
' Save the updated Excel file
wb.SaveAs("sample.xlsx")
End Sub
Le code ci-dessus remplacera la valeur Normal par Good de B5 à G5, et le reste de la feuille de calcul restera le même. Découvrez comment modifier les valeurs des cellules Excel dans une plage à l'aide de cette fonction d'IronXL.
Supprimer des lignes d'un fichier Excel
Dans le cadre du développement d'applications, il nous arrive d'avoir besoin de supprimer par programmation des lignes entières de fichiers Excel existants. Pour cette tâche, nous utilisons la fonction Remove() d' IronXL. Voici un exemple :
// Import the IronXL library
using IronXL;
static void Main(string[] args)
{
// Access the WorkBook and WorkSheet
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
// Remove the row number 2
ws.Rows[2].Remove();
// Save the updated Excel file
wb.SaveAs("sample.xlsx");
}
// Import the IronXL library
using IronXL;
static void Main(string[] args)
{
// Access the WorkBook and WorkSheet
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
// Remove the row number 2
ws.Rows[2].Remove();
// Save the updated Excel file
wb.SaveAs("sample.xlsx");
}
' Import the IronXL library
Imports IronXL
Shared Sub Main(ByVal args() As String)
' Access the WorkBook and WorkSheet
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
' Remove the row number 2
ws.Rows(2).Remove()
' Save the updated Excel file
wb.SaveAs("sample.xlsx")
End Sub
Le code ci-dessus supprimera la ligne numéro 2 de sample.xlsx.
Accès rapide au tutoriel
Consultez la documentation de référence de l'API IronXL pour en savoir plus sur toutes les fonctions, fonctionnalités, classes et espaces de noms.
Référence IronXLQuestions Fréquemment Posées
Comment puis-je lire un fichier Excel en C# sans utiliser Interop?
Vous pouvez utiliser IronXL pour lire des fichiers Excel en C# sans nécessiter Interop. Chargez le fichier en utilisant la fonction WorkBook.Load() et accédez à la feuille de calcul avec WorkBook.GetWorkSheet().
Quel est le processus pour créer un nouveau fichier Excel de manière programmatique en C#?
Avec IronXL, vous pouvez créer un nouveau fichier Excel en utilisant la méthode WorkBook.Create() puis ajouter des données avec WorkSheet.CreateWorkSheet().
Est-il possible de modifier des fichiers Excel en C# sans utiliser Interop?
Oui, IronXL offre la possibilité de modifier des fichiers Excel sans Interop en mettant à jour les valeurs des cellules, en remplaçant les anciennes valeurs et en supprimant directement des lignes ou des colonnes.
Comment puis-je mettre à jour la valeur d'une cellule spécifique dans une feuille Excel en utilisant IronXL?
Pour mettre à jour la valeur d'une cellule, chargez votre feuille de calcul en utilisant WorkBook.GetWorkSheet(), attribuez une nouvelle valeur à la cellule, puis enregistrez vos modifications.
Puis-je remplacer des valeurs dans une plage de cellules à l'aide de IronXL?
IronXL vous permet de remplacer des valeurs dans une plage en utilisant la fonction Replace() sur une feuille de calcul ou un objet de plage spécifique.
Quels sont les avantages de l'utilisation de IronXL par rapport à Microsoft.Office.Interop.Excel?
IronXL simplifie la manipulation des fichiers Excel en fournissant une API facile à utiliser, réduisant la nécessité d'un code Interop complexe et offrant de meilleures performances et fiabilité.
Comment puis-je supprimer une ligne d'un fichier Excel en utilisant IronXL?
Pour supprimer une ligne dans IronXL, utilisez la fonction Remove() sur l'objet de ligne spécifié dans la feuille de calcul.
IronXL prend-il en charge la conversion de fichiers Excel en DataSets et DataTables?
Oui, IronXL prend en charge la conversion de classeurs en DataSets et de feuilles de calcul en DataTables, permettant une manipulation des données plus flexible.
Comment installer IronXL dans un projet C#?
Vous pouvez installer IronXL dans votre projet C# en le téléchargeant depuis le site Web de Iron Software ou en utilisant le gestionnaire de packages NuGet avec la commande: Install-Package IronXL.Excel.
IronXL est-il adapté pour les grands fichiers Excel ?
IronXL est optimisé pour gérer efficacement de grands fichiers Excel, offrant des vitesses de traitement rapides et une utilisation minimale de la mémoire par rapport aux méthodes Interop traditionnelles.



