Comment utiliser Excel Interop en C# comme alternative

C# Excel Interop Workaround

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

Many projects use Excel to communicate clearly, but if you are using Microsoft.Office.Interop.Excel, then you have likely had to face many complicated lines of code. In this tutorial, we will use IronXL as a C# Excel Interop workaround, so you don't have to use Interop in order to finish your project. You can use Excel file data, create Excel files, edit, and manipulate all using C# programming.

C# Excel No Interop

  • Download Excel No Interop Library
  • Access Excel file in C#
  • Create a new Excel file and insert data programmatically
  • Modify existing files, update and replace cell values, remove rows, and more
How To Work related to C# Excel Interop Workaround

How to Use Excel Interop Alternatively

  1. Install an Excel library to process Excel files.
  2. Open the Workbook and add the current Excel file.
  3. Set the default Worksheet.
  4. Read the value from the Excel Workbook.
  5. Process and show the value.

Step 1

1. Download IronXL Library

Download IronXL Library or install with NuGet to access the free library and then follow step by step to work through this tutorial on using Excel without Interop. Licenses available if you want to go live with your project.

Install-Package IronXL.Excel

How to Tutorial

2. Access Excel File Data

To develop business applications, we need easy and perfect access to data from Excel files and the ability to manipulate them programmatically according to a variety of requirements. With IronXL, use the WorkBook.Load() function, which grants access to reading a specific Excel file.

After accessing the WorkBook, you can then choose a specific WorkSheet using the WorkBook.GetWorkSheet() function. Now you have all Excel file data available. See the following example for how we used these functions to get Excel file data in a C# project.

// 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

This code will produce the following outcome:

1output related to 2. Access Excel File Data

With the Excel file looking like this:

1excel related to 2. Access Excel File Data

We can see that our Excel file, sample.xlsx, has small business in the A5 cell. The other values from B2 to B10 are the same and displayed in the output.

DataSet and DataTables

We can also work with Excel files as a dataset and datatables using these directions.

// 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

You can read more about how to work with Excel DataSet and DataTables, which provides more code examples and explanations on the process.

Now, we will see another aspect, which is about creating a new Excel file in our C# project.


3. Create New Excel File

We can easily create a new Excel spreadsheet and insert data in it programmatically in our C# project. To accomplish this, IronXL provides the WorkBook.Create() function, which creates a new Excel file.

We can then create as many WorkSheets as needed using the WorkBook.CreateWorkSheet() function.

After that, we can also insert data, as shown in the example below:

// 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

The above code will create a new Excel file with the name NewExcelFile.xlsx, and insert new data in cell addresses A1 and B2 with values New Value A1 and New Value B2 respectively. With this setup, you can insert data in the same way, as much as you need.

Note: If you are creating a new Excel file or modifying an existing one, don't forget to save the file as shown in the example above.

Dig deeper into how to Create new Excel SpreadSheets using C# and try the code in your project.


4. Modify Existing Excel File

We can modify existing Excel files and insert updated data in them programmatically. In Excel file modifications, we will see the following aspects:

  • Update the cell value
  • Replace old values with new ones
  • Remove rows or columns

Let's see how to implement the above topics in our C# project.

Update Cell Value

It is very simple to update the cell value of an existing Excel spreadsheet. Just access the Excel file in the project and specify its WorkSheet, and then update its data as shown in the example below:

// 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

The above code will update the value of cell A3 with New Value of A3.

We can also update multiple cells with a static value, using the range function:

ws["A3:C3"].Value = "New Value";
ws["A3:C3"].Value = "New Value";
ws("A3:C3").Value = "New Value"
$vbLabelText   $csharpLabel

This will update row number 3 from A3 to C3 cells with the New Value in the Excel file.

Learn more about using the Range Function in C# with these examples.

Replace Cell Values

One of the strengths of IronXL is its ability to easily replace old values with new values in existing Excel files, covering all the following aspects:

  • Replace values of a complete WorkSheet:
ws.Replace("old value", "new value");
ws.Replace("old value", "new value");
ws.Replace("old value", "new value")
$vbLabelText   $csharpLabel
  • Replace values of a specific row:
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
  • Replace values of a specific column:
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
  • Replace values in a specific range:
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

Let's view an example to clearly see how to use the above functions in our C# Project to replace the values. In this example, we'll use the replace function to replace a value in a specific range.

// 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

The above code will replace the Normal value with Good from B5 to G5, and the rest of the WorkSheet remains the same. See more about how to Edit Excel Cell Values in a Range using this function of IronXL.

Remove Rows of Excel File

In application development, we sometimes need to remove whole rows of existing Excel files programmatically. For this task, we use the Remove() function of IronXL. Here's an example:

// 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

The above code will remove row number 2 of sample.xlsx.


Tutorial Quick Access

IronXL Reference

Read the API Reference for IronXL to read more about all the functions, features, classes, and namespaces.

IronXL Reference
Documentation related to Tutorial Quick Access

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,686,155 | Version : 2025.11 vient de sortir