Comment écrire dans des fichiers Excel en .NET avec C#

Écrire des fonctions Excel .NET en C# avec IronXL

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

De nombreux projets d'applications C# nous obligent à mettre à jour des fichiers et à écrire de nouvelles données dans des feuilles de calcul Excel par programmation. Les fonctionnalités d'Excel .NET peuvent parfois être complexes, mais grâce à la bibliothèque IronXL, cette tâche est assez simple et permet de travailler avec des feuilles de calcul Excel dans n'importe quel format. Pas de longues lignes de code, juste l'accès aux cellules spécifiques et aux valeurs personnalisées que vous leur attribuez.

Démarrage rapide : écrire une valeur dans une cellule spécifique

Cet exemple montre avec quelle facilité vous pouvez écrire une valeur dans une seule cellule à l'aide d'IronXL et enregistrer le fichier Excel en quelques lignes seulement — commencez sans code répétitif ni complexité.

Nuget IconCommencez dès maintenant à créer des PDF avec NuGet :

  1. Installez IronXL avec le gestionnaire de packages NuGet

    PM > Install-Package IronXL.Excel

  2. Copiez et exécutez cet extrait de code.

    worksheet["A1"].Value = "Hello, IronXL!";
    workbook.SaveAs("output.xlsx");
  3. Déployez pour tester sur votre environnement de production.

    Commencez à utiliser IronXL dans votre projet dès aujourd'hui grâce à un essai gratuit.
    arrow pointer

Rédiger des instructions Excel .NET

  • Télécharger la bibliothèque pour Excel .NET
  • Écrire des valeurs dans des cellules spécifiques
  • Écrire des valeurs statiques dans plusieurs cellules
  • Écrire des valeurs dynamiques dans une plage de cellules
  • Remplacer les valeurs de cellules dans une ligne, colonne, plage spécifique, et plus
How To Work related to Écrire des fonctions Excel .NET en C# avec IronXL

Accès aux fichiers Excel

Commençons par accéder au fichier Excel dans lequel nous souhaitons écrire les données. Ouvrons le fichier Excel de notre projet, puis ouvrons sa feuille de calcul spécifique à l'aide du code suivant.

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-load-file.cs
// Load Excel file in the project
WorkBook workBook = WorkBook.Load("path");
' Load Excel file in the project
Dim workBook As WorkBook = WorkBook.Load("path")
$vbLabelText   $csharpLabel

La commande ci-dessus ouvrira le fichier Excel spécifié. Ensuite, accédez à la feuille de calcul.

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-get-sheet.cs
// Open Excel WorkSheet
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");
' Open Excel WorkSheet
Dim workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")
$vbLabelText   $csharpLabel

La feuille de calcul Excel worksheet et vous pourrez y saisir tout type de données. Pour en savoir plus sur les différentes manières d' ouvrir des fichiers Excel et d'accéder aux feuilles de calcul, consultez les exemples du lien.

Remarque : N'oubliez pas d'ajouter la référence à IronXL dans votre projet et d'importer la bibliothèque en utilisant using IronXL .


Écrire la valeur dans une cellule spécifique

On peut écrire dans un fichier Excel en utilisant de nombreuses méthodes différentes, mais l'approche de base consiste à utiliser ExcelCell . Pour ce faire, il est possible d'accéder à n'importe quelle cellule de la feuille de calcul Excel ouverte et d'y inscrire une valeur comme suit :

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-assign-cell.cs
workSheet["Cell Address"].Value="Assign the Value";
workSheet("Cell Address").Value="Assign the Value"
$vbLabelText   $csharpLabel

Voici un exemple d'utilisation de la fonction ci-dessus pour écrire dans une cellule Excel de notre projet C#.

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-assign-cell-full.cs
using IronXL;

// Load Excel file
WorkBook workBook = WorkBook.Load("sample.xlsx");

// Open WorkSheet of sample.xlsx
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");

// Access A1 cell and write the value
workSheet["A1"].Value = "new value";

// Save changes
workBook.SaveAs("sample.xlsx");
Imports IronXL

' Load Excel file
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")

' Open WorkSheet of sample.xlsx
Private workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")

' Access A1 cell and write the value
Private workSheet("A1").Value = "new value"

' Save changes
workBook.SaveAs("sample.xlsx")
$vbLabelText   $csharpLabel

Ce code écrira new value dans la cellule A1 de la feuille de calcul Sheet1 du fichier Excel sample.xlsx . De la même manière, nous pouvons insérer des valeurs dans n'importe quelle cellule d'un fichier Excel.

Remarque : N'oubliez pas d'enregistrer le fichier Excel après avoir saisi de nouvelles valeurs dans la feuille de calcul, comme indiqué dans l'exemple ci-dessus.

Forcer l'attribution de la valeur exacte

Lors de la définition de la propriété Value , IronXL tentera de la convertir en son type de valeur correspondant. Parfois, cette évaluation est indésirable car l'utilisateur souhaite attribuer de force la valeur exacte à la cellule sans conversion. Pour ce faire, assignez la valeur sous forme de chaîne de caractères. Dans IronXL, il suffit d'utiliser StringValue au lieu de Value pour obtenir le même résultat.

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-assign-stringvalue.cs
// Assign value as string
workSheet["A1"].StringValue = "4402-12";
' Assign value as string
workSheet("A1").StringValue = "4402-12"
$vbLabelText   $csharpLabel

Écrire des valeurs statiques dans une plage

Nous pouvons écrire de nouvelles valeurs dans plusieurs cellules, appelées une plage, comme suit :

// Assign a static value to a range of cells
worksheet["B2:C5"].Value = "static value";
// Assign a static value to a range of cells
worksheet["B2:C5"].Value = "static value";
' Assign a static value to a range of cells
worksheet("B2:C5").Value = "static value"
$vbLabelText   $csharpLabel

De cette manière, nous spécifions la plage de cellules De à À où les données seront écrites. La new value sera inscrite dans toutes les cellules comprises dans cette plage. Pour en savoir plus sur les plages Excel en C# , consultez les exemples ici.

Voyons comment écrire une plage en pratique à l'aide de l'exemple ci-dessous.

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-assign-cell-range-full.cs
using IronXL;

// Load Excel file
WorkBook workBook = WorkBook.Load("sample.xlsx");

// Open WorkSheet of sample.xlsx
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");

// Specify range row wise and write new value
workSheet["B2:B9"].Value = "new value";

// Specify range column wise and write new value
workSheet["C3:C7"].Value = "new value";

// Save changes
workBook.SaveAs("sample.xlsx");
Imports IronXL

' Load Excel file
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")

' Open WorkSheet of sample.xlsx
Private workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")

' Specify range row wise and write new value
Private workSheet("B2:B9").Value = "new value"

' Specify range column wise and write new value
Private workSheet("C3:C7").Value = "new value"

' Save changes
workBook.SaveAs("sample.xlsx")
$vbLabelText   $csharpLabel

Ce code écrira new value de B2 à C5 dans la feuille de calcul Sheet1 du fichier Excel sample.xlsx . Il utilise des valeurs statiques pour les cellules Excel.


Écrire des valeurs dynamiques dans une plage

Nous pouvons également ajouter des valeurs dynamiques à une plage, comme illustré ci-dessous.

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-assign-dynamic-value.cs
using IronXL;

// Load Excel file
WorkBook workBook = WorkBook.Load("sample.xlsx");

// Open WorkSheet of sample.xlsx
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");

// Specify range in which we want to write the values
for (int i = 2; i <= 7; i++)
{
    // Write the Dynamic value in one row
    workSheet["B" + i].Value = "Value" + i;

    // Write the Dynamic value in another row
    workSheet["D" + i].Value = "Value" + i;
}

// Save changes
workBook.SaveAs("sample.xlsx");
Imports IronXL

' Load Excel file
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")

' Open WorkSheet of sample.xlsx
Private workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")

' Specify range in which we want to write the values
For i As Integer = 2 To 7
	' Write the Dynamic value in one row
	workSheet("B" & i).Value = "Value" & i

	' Write the Dynamic value in another row
	workSheet("D" & i).Value = "Value" & i
Next i

' Save changes
workBook.SaveAs("sample.xlsx")
$vbLabelText   $csharpLabel

Le code ci-dessus écrira des valeurs dynamiques dans les colonnes B de 2 à 7 du fichier Excel sample.xlsx . Nous pouvons voir le résultat du code sur sample.xlsx .

1excel related to Écrire des valeurs dynamiques dans une plage

Remplacer la valeur de la cellule Excel

Avec IronXL, nous pouvons facilement écrire une nouvelle valeur pour remplacer l'ancienne, en utilisant la fonction Replace() comme suit :

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-replace.cs
workSheet.Replace("old value", "new value");
workSheet.Replace("old value", "new value")
$vbLabelText   $csharpLabel

La fonction ci-dessus écrira new value en écrasant l' old value dans l'intégralité de la feuille de calcul Excel.

Remplacer la valeur de la cellule dans une ligne spécifique

Si nous souhaitons écrire une nouvelle valeur uniquement dans une ligne spécifique, procédez comme suit :

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-replace-row.cs
workSheet.Rows[RowIndex].Replace("old value", "new value");
workSheet.Rows(RowIndex).Replace("old value", "new value")
$vbLabelText   $csharpLabel

Cela écrira new value par-dessus l' old value uniquement à l'index de ligne spécifié.

Remplacer la valeur de la cellule dans une colonne spécifique

De même, si nous voulons inscrire new value par-dessus l' old value dans une colonne spécifique, procédez comme suit :

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-replace-column.cs
workSheet.Columns[ColumnIndex].Replace("old value", "new Value");
workSheet.Columns(ColumnIndex).Replace("old value", "new Value")
$vbLabelText   $csharpLabel

Le code ci-dessus écrira new value pour remplacer l' old value , mais uniquement dans la colonne spécifiée. Le reste de la feuille de travail reste inchangé.

Remplacer la valeur de la cellule dans une plage spécifique

IronXL offre également la possibilité d'écrire une new value en remplacement de l' old value , uniquement dans une plage spécifiée.

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-replace-range.cs
workSheet["From Cell Address : To Cell Address"].Replace("old value", "new value");
workSheet("From Cell Address : To Cell Address").Replace("old value", "new value")
$vbLabelText   $csharpLabel

Cela écrira new value au-dessus de old value , uniquement dans les cellules situées dans la plage spécifiée.

Prenons l'exemple de l'utilisation de toutes les fonctions ci-dessus pour écrire de nouvelles valeurs et remplacer les anciennes dans une feuille de calcul Excel.

Exemple de toutes les fonctions

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-replace-full.cs
using IronXL;

WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");

// Write new above old in complete WorkSheet
workSheet.Replace("old", "new");

// Write new above old just in row no 6 of WorkSheet
workSheet.Rows[5].Replace("old", "new");

// Write new above old just in column no 5 of WorkSheet
workSheet.Columns[4].Replace("old", "new");

// Write new above old just from A5 to H5 of WorkSheet
workSheet["A5:H5"].Replace("old", "new");

workBook.SaveAs("sample.xlsx");
Imports IronXL

Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
Private workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")

' Write new above old in complete WorkSheet
workSheet.Replace("old", "new")

' Write new above old just in row no 6 of WorkSheet
workSheet.Rows(5).Replace("old", "new")

' Write new above old just in column no 5 of WorkSheet
workSheet.Columns(4).Replace("old", "new")

' Write new above old just from A5 to H5 of WorkSheet
workSheet("A5:H5").Replace("old", "new")

workBook.SaveAs("sample.xlsx")
$vbLabelText   $csharpLabel

Pour plus d'informations sur la façon d'écrire des applications Excel .NET et plus encore, consultez notre tutoriel complet sur la façon d'ouvrir et d'écrire des fichiers Excel en C# .


Accès rapide au tutoriel

Consultez la documentation de l'API.

Consultez la documentation d'IronXL, notamment la liste de toutes les fonctions, fonctionnalités, espaces de noms, classes et énumérations disponibles dans la bibliothèque.

Consultez la documentation de l'API.
Documentation related to Accès rapide au tutoriel

Questions Fréquemment Posées

Comment puis-je commencer à écrire des fichiers Excel en .NET?

Pour commencer avec IronXL, téléchargez la bibliothèque et incluez-la dans votre projet. Importez la bibliothèque en utilisant using IronXL dans votre code C#.

Comment puis-je écrire une valeur dans une cellule spécifique d'une feuille Excel?

Pour écrire une valeur dans une cellule spécifique en utilisant IronXL, accédez à la cellule en utilisant son adresse, comme worksheet['A1'], et assignez une valeur en utilisant la propriété .Value.

Comment puis-je assigner une valeur statique à une plage de cellules dans Excel?

Pour attribuer une valeur statique à une plage à l'aide d'IronXL, spécifiez la plage en utilisant les adresses des cellules, comme worksheet['B2:C5'], et définissez la propriété .Value sur votre valeur statique souhaitée.

Puis-je écrire des valeurs dynamiques dans une plage de cellules dans Excel?

Oui, avec IronXL, vous pouvez écrire des valeurs dynamiques dans une plage en utilisant des boucles ou une logique personnalisée. Par exemple, vous pouvez parcourir les adresses de cellules et assigner des valeurs dynamiques en fonction de vos besoins.

Comment puis-je remplacer les valeurs existantes des cellules dans une feuille Excel?

En utilisant IronXL, vous pouvez utiliser la méthode Replace() sur la feuille de calcul, la ligne, la colonne, ou la plage spécifiée pour remplacer 'ancienne valeur' par 'nouvelle valeur'.

Quelle est la différence entre l'utilisation de Value et StringValue?

Dans IronXL, la propriété .Value peut convertir la valeur assignée à un format spécifique de type, tandis que .StringValue assigne la valeur en tant que chaîne, évitant la conversion.

Comment puis-je ouvrir et accéder à une feuille de calcul spécifique dans un fichier Excel?

Utilisez WorkBook.Load('path/to/your/excel-file.xlsx') de IronXL pour charger le fichier et workbook.GetWorkSheet('SheetName') pour accéder à une feuille de calcul spécifique.

Est-il nécessaire de sauvegarder le fichier Excel après avoir écrit de nouvelles valeurs?

Oui, en utilisant IronXL, vous devez sauvegarder le fichier Excel après avoir effectué des modifications en utilisant la méthode workbook.SaveAs('filename.xlsx') pour conserver vos modifications.

Comment puis-je écrire une nouvelle valeur pour remplacer une ancienne valeur dans une ligne spécifique?

Avec IronXL, accédez à la ligne en utilisant worksheet.Rows[index] puis appelez la méthode Replace() avec les anciennes et nouvelles valeurs.

Puis-je remplacer les valeurs dans une colonne spécifique?

Oui, en utilisant IronXL, accédez à la colonne en utilisant worksheet.Columns['A'] et utilisez la méthode Replace() pour remplacer les anciennes valeurs par des nouvelles dans cette colonne.

Comment puis-je m'assurer que mon projet C# peut interagir avec des fichiers Excel?

Assurez-vous que votre projet C# référence la bibliothèque IronXL en la téléchargeant et en l'ajoutant aux références de votre projet. Cela facilite l'interaction avec les fichiers Excel.

Quelles sont les problèmes courants lors de l'écriture vers des fichiers Excel en .NET?

Les problèmes courants incluent l'absence de référencement correct de la bibliothèque IronXL, le format incorrect des adresses de cellules, et l'oubli de sauvegarder les modifications. Assurez-vous d'une configuration et d'une syntaxe appropriées.

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