Comment utiliser Excel Interop en C# comme alternative

Solution de contournement pour l'interopérabilité Excel en C

This article was translated from English: Does it need improvement?
Translated
View the article in English

De nombreux projets utilisent Excel pour communiquer clairement, mais si vous utilisez Microsoft.Office.Interop.Excel , vous avez probablement déjà été confronté à de nombreuses lignes de code complexes. Dans ce tutoriel, nous utiliserons IronXL comme solution de contournement pour l'interopérabilité Excel en C#, vous n'aurez donc pas besoin d'utiliser l'interopérabilité pour terminer votre projet. Vous pouvez utiliser des données de fichiers Excel, créer des fichiers Excel, les modifier et les manipuler grâce à la programmation C#.

C# Excel sans interopérabilité

  • 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
How To Work related to Solution de contournement pour l'interopérabilité Excel en C

Comment utiliser Excel Interop autrement

  1. Installez une bibliothèque Excel pour traiter les fichiers Excel.
  2. Ouvrez le Workbook et ajoutez le fichier Excel actuel.
  3. Définir la feuille de calcul par défaut.
  4. Lisez la valeur dans le classeur Excel.
  5. 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
$vbLabelText   $csharpLabel

Ce code produira le résultat suivant :

1output related to 2. Accéder aux données du fichier Excel

Le fichier Excel ressemble à ceci :

1excel related to 2. Accéder aux données du fichier Excel

Nous pouvons constater 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 le résultat.

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)
$vbLabelText   $csharpLabel

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 que nécessaire à l'aide de 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
$vbLabelText   $csharpLabel

Le code ci-dessus créera un nouveau fichier Excel nommé NewExcelFile.xlsx et insérera de nouvelles données dans les cellules A1 et B2 avec les valeurs respectivement New Value A1 et New Value B2 . 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
$vbLabelText   $csharpLabel

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"
$vbLabelText   $csharpLabel

Cela mettra à jour la ligne numéro 3, des cellules A3 à C3 , avec la New Value du 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")
$vbLabelText   $csharpLabel
  • 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")
$vbLabelText   $csharpLabel
  • 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")
$vbLabelText   $csharpLabel
  • 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")
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

Le code ci-dessus remplacera la valeur Normal par Good de B5 à G5 , le reste de la feuille de calcul restant inchangé. 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
$vbLabelText   $csharpLabel

Le code ci-dessus supprimera la ligne numéro 2 du sample.xlsx .


Accès rapide au tutoriel

Référence IronXL

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 IronXL
Documentation related to Accès rapide au tutoriel

Questions 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.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite
Prêt à commencer?
Nuget Téléchargements 1,738,553 | Version: 2025.11 vient de sortir