C&num ; Créer Excel

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

La création programmatique de fichiers de feuilles de calcul Excel est une tâche courante pour les développeurs C# que nous allons aborder aujourd'hui, notamment en apprenant à créer de nouveaux fichiers Excel, à définir des styles de cellules et à insérer des données à l'aide de la programmation C#. Avec le bon code, vous pouvez entièrement personnaliser et styliser vos feuilles pour répondre à vos besoins. Nous allons voir étape par étape comment créer des classeurs Excel en C# pour votre projet .NET.


Étape 1

1. Créer des feuilles de calcul Excel en C# avec IronXL

Aujourd'hui, nous allons utiliser IronXL, une bibliothèque C# pour les fonctionnalités d'Excel qui rend le travail avec les fichiers Excel beaucoup plus efficace. Il est disponible gratuitement pour les projets de développement. Installez-le et suivez le tutoriel.

Télécharger dans votre projet ou suivre NuGet pour l'installation dans Visual Studio.

Install-Package IronXL.Excel

Comment faire Tutoriel

2. C# ; Créer un livre de travail Excel

Une fois IronXL installé dans notre projet, nous pouvons créer un classeur Excel. Utilisez la fonction WorkBook.Create() fonction d'IronXL.

WorkBook wb = WorkBook.Create();
WorkBook wb = WorkBook.Create();
Dim wb As WorkBook = WorkBook.Create()
VB   C#

Il créera un nouveau classeur Excel wb. Nous pouvons spécifier le type de XL WorkBook ( .xlsx ou xls ) en utilisant ExcelFileFormat comme paramètre dans la commande WorkBook.Create() fonctionnent comme suit :

/**
Create Csharp WorkBook 
anchor-c-num-create-excel-workbook
**/
//for creating .xlsx extension file
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
//for creating .xls extension file
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
/**
Create Csharp WorkBook 
anchor-c-num-create-excel-workbook
**/
//for creating .xlsx extension file
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
//for creating .xls extension file
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
'''
'''Create Csharp WorkBook 
'''anchor-c-num-create-excel-workbook
'''*
'for creating .xlsx extension file
Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
'for creating .xls extension file
Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
VB   C#

Nous pouvons maintenant utiliser wb pour créer des feuilles de travail.


3. C&num ; Créer une feuille de calcul Excel

Pour créer une feuille de travail, IronXL fournit la fonction Workbook.CreateWorkSheet() fonction. La fonction requiert un paramètre de type chaîne, dans lequel nous pouvons spécifier le nom de la feuille de travail.

WorkSheet ws = wb.CreateWorkSheet("SheetName");
WorkSheet ws = wb.CreateWorkSheet("SheetName");
Dim ws As WorkSheet = wb.CreateWorkSheet("SheetName")
VB   C#

wb est le WorkBook (voir ci-dessus) et ws est une feuille de travail nouvellement créée. De la même manière, nous pouvons créer autant de feuilles de travail que nécessaire. Par exemple :

/**
Create Csharp WorkSheets 
anchor-c-num-create-excel-workbook
**/
WorkSheet ws1 = wb.CreateWorkSheet("Sheet1");
WorkSheet ws2 = wb.CreateWorkSheet("Sheet2");
/**
Create Csharp WorkSheets 
anchor-c-num-create-excel-workbook
**/
WorkSheet ws1 = wb.CreateWorkSheet("Sheet1");
WorkSheet ws2 = wb.CreateWorkSheet("Sheet2");
'''
'''Create Csharp WorkSheets 
'''anchor-c-num-create-excel-workbook
'''*
Dim ws1 As WorkSheet = wb.CreateWorkSheet("Sheet1")
Dim ws2 As WorkSheet = wb.CreateWorkSheet("Sheet2")
VB   C#

4. Insérer des données dans les cellules

Nous pouvons maintenant insérer des données dans la feuille de calcul spécifiée. Nous utiliserons le système d'adressage de cellules d'Excel :

/**
Insert Data in Cell Address
anchor-insert-cell-data
**/
WorkSheet ["CellAddress"].Value = "Value";
/**
Insert Data in Cell Address
anchor-insert-cell-data
**/
WorkSheet ["CellAddress"].Value = "Value";
'''
'''Insert Data in Cell Address
'''anchor-insert-cell-data
'''*
WorkSheet ("CellAddress").Value = "Value"
VB   C#

5. Insérer des données dans une plage

Cette méthodologie nous permet également d'insérer des valeurs dans autant de cellules que nécessaire. Nous pouvons utiliser Range pour insérer des données dans une série de cellules.

/**
Insert Data in Range
anchor-insert-data-in-range
**/
WorkSheet ["From Cell Address : To Cell Address"].Value="value";
/**
Insert Data in Range
anchor-insert-data-in-range
**/
WorkSheet ["From Cell Address : To Cell Address"].Value="value";
'''
'''Insert Data in Range
'''anchor-insert-data-in-range
'''*
WorkSheet ("From Cell Address : To Cell Address").Value="value"
VB   C#

Cette opération permet d'insérer la valeur dans toutes les cellules situées dans la plage spécifiée. Vous pouvez en savoir plus sur Plages C# Excel à utiliser dans votre projet .NET.


6. Enregistrer le fichier Excel

Après avoir inséré les données, nous devons enregistrer le fichier Excel dans le chemin spécifié.

/**
Save Excel File
anchor-save-excel-file
**/
WorkBook.SaveAs("Path + Filename");
/**
Save Excel File
anchor-save-excel-file
**/
WorkBook.SaveAs("Path + Filename");
'''
'''Save Excel File
'''anchor-save-excel-file
'''*
WorkBook.SaveAs("Path + Filename")
VB   C#

Grâce à la ligne de code ci-dessus, le livre de travail Excel nouvellement créé sera sauvegardé à l'emplacement spécifié. Plongez au cœur de Exemples de création d'une feuille de calcul Excel en C#.


7. Créer, insérer des données et sauvegarder Exemple

/**
Complete Example
anchor-create-insert-data-and-save-example
**/
using IronXL;
static void Main(string [] args)
{
    //Create new XL WorkBook
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
    //Create worksheet of specified WorkBook
    WorkSheet ws = wb.CreateWorkSheet("Sheet1");
    //insert data by cell addressing
    ws ["A1"].Value = "Welcome";
    ws ["A2"].Value = "To";
    ws ["A3"].Value = "IronXL";
    //insert data by range
    ws ["C3:C8"].Value = "Cell Value";
    //save the file in specified path
    wb.SaveAs("sample.xlsx");
    Console.WriteLine("successfully created.");
    Console.ReadKey();    
}
/**
Complete Example
anchor-create-insert-data-and-save-example
**/
using IronXL;
static void Main(string [] args)
{
    //Create new XL WorkBook
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
    //Create worksheet of specified WorkBook
    WorkSheet ws = wb.CreateWorkSheet("Sheet1");
    //insert data by cell addressing
    ws ["A1"].Value = "Welcome";
    ws ["A2"].Value = "To";
    ws ["A3"].Value = "IronXL";
    //insert data by range
    ws ["C3:C8"].Value = "Cell Value";
    //save the file in specified path
    wb.SaveAs("sample.xlsx");
    Console.WriteLine("successfully created.");
    Console.ReadKey();    
}
'''
'''Complete Example
'''anchor-create-insert-data-and-save-example
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
	'Create new XL WorkBook
	Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
	'Create worksheet of specified WorkBook
	Dim ws As WorkSheet = wb.CreateWorkSheet("Sheet1")
	'insert data by cell addressing
	ws ("A1").Value = "Welcome"
	ws ("A2").Value = "To"
	ws ("A3").Value = "IronXL"
	'insert data by range
	ws ("C3:C8").Value = "Cell Value"
	'save the file in specified path
	wb.SaveAs("sample.xlsx")
	Console.WriteLine("successfully created.")
	Console.ReadKey()
End Sub
VB   C#

Voici une capture d'écran de notre nouveau classeur Excel nommé sample.xlsx :


8. C&num ; Excel from DataTable

Dans ce qui pourrait autrement être une ligne de code compliquée, IronXL fournit un moyen efficace de convertir les données des tableaux de données en fichiers Excel et de les enregistrer à un emplacement spécifié. Créez un nouveau fichier Excel et remplissez-le à partir de DataTable. Simple!

Tout d'abord, créons un nouveau tableau de données (DataTable) avec des données. Ensuite, créez le fichier Excel, insérez-le et sauvegardez-le.

/**
Excel from DataTable
anchor-c-num-excel-from-datatable
**/
using IronXL;
static void Main(string [] args)
{
    //create new datatable
    DataTable dt = new DataTable();
    dt.Columns.Add("id");
    dt.Columns.Add("name");
    dt.Columns.Add("phone");
    //fill data in datatable
    for (int i = 0; i < 5; i++)
    {
        dt.Rows.Add("id" + i.ToString(), "name" + i.ToString(), "phone" + i.ToString());
    }
    //Create new XL file
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
    //Create WorkSheet
    WorkSheet ws = wb.CreateWorkSheet("sheet1");
    //send data in worksheet from datatable
    int j = 1; 
    foreach (DataRow row in dt.Rows)
    {
        ws ["A" + j].Value = row ["id"].ToString();
        ws ["B" + j].Value = row ["name"].ToString();
        ws ["C" + j].Value = row ["phone"].ToString();
        j = j + 1;
    }
    //save the file
    wb.SaveAs("sample.xlsx");
}
/**
Excel from DataTable
anchor-c-num-excel-from-datatable
**/
using IronXL;
static void Main(string [] args)
{
    //create new datatable
    DataTable dt = new DataTable();
    dt.Columns.Add("id");
    dt.Columns.Add("name");
    dt.Columns.Add("phone");
    //fill data in datatable
    for (int i = 0; i < 5; i++)
    {
        dt.Rows.Add("id" + i.ToString(), "name" + i.ToString(), "phone" + i.ToString());
    }
    //Create new XL file
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
    //Create WorkSheet
    WorkSheet ws = wb.CreateWorkSheet("sheet1");
    //send data in worksheet from datatable
    int j = 1; 
    foreach (DataRow row in dt.Rows)
    {
        ws ["A" + j].Value = row ["id"].ToString();
        ws ["B" + j].Value = row ["name"].ToString();
        ws ["C" + j].Value = row ["phone"].ToString();
        j = j + 1;
    }
    //save the file
    wb.SaveAs("sample.xlsx");
}
'''
'''Excel from DataTable
'''anchor-c-num-excel-from-datatable
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
	'create new datatable
	Dim dt As New DataTable()
	dt.Columns.Add("id")
	dt.Columns.Add("name")
	dt.Columns.Add("phone")
	'fill data in datatable
	For i As Integer = 0 To 4
		dt.Rows.Add("id" & i.ToString(), "name" & i.ToString(), "phone" & i.ToString())
	Next i
	'Create new XL file
	Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
	'Create WorkSheet
	Dim ws As WorkSheet = wb.CreateWorkSheet("sheet1")
	'send data in worksheet from datatable
	Dim j As Integer = 1
	For Each row As DataRow In dt.Rows
		ws ("A" & j).Value = row ("id").ToString()
		ws ("B" & j).Value = row ("name").ToString()
		ws ("C" & j).Value = row ("phone").ToString()
		j = j + 1
	Next row
	'save the file
	wb.SaveAs("sample.xlsx")
End Sub
VB   C#

Voici un aperçu de nos résultats :

Passons maintenant à la définition des propriétés des cellules du livre de travail XL à l'aide d'IronXL.


9. Définir le style du classeur Excel

Maintenant, définissons les propriétés de la cellule. Il est parfois nécessaire de définir des styles de manière programmatique en fonction d'un certain nombre d'exigences. IronXL nous offre de nombreuses options pour différentes fonctions permettant de définir facilement les styles de cellules.

Nous pouvons utiliser le système d'adressage des cellules des fichiers Excel pour spécifier l'endroit où le style doit être appliqué. Définissons quelques propriétés de style de base que nous utilisons souvent dans notre vie quotidienne.

//bold the text of specified cell
WorkSheet ["CellAddress"].Style.Font.Bold =true;

//Italic the text of specified cell
WorkSheet ["CellAddress"].Style.Font.Italic =true;

//Strikeout the text of specified cell
WorkSheet ["CellAddress"].Style.Font.Strikeout = true;

//border style of specific cell 
WorkSheet ["CellAddress"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Dotted;

//border color of specific cell 
WorkSheet ["CellAddress"].Style.BottomBorder.SetColor("color value");
//bold the text of specified cell
WorkSheet ["CellAddress"].Style.Font.Bold =true;

//Italic the text of specified cell
WorkSheet ["CellAddress"].Style.Font.Italic =true;

//Strikeout the text of specified cell
WorkSheet ["CellAddress"].Style.Font.Strikeout = true;

//border style of specific cell 
WorkSheet ["CellAddress"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Dotted;

//border color of specific cell 
WorkSheet ["CellAddress"].Style.BottomBorder.SetColor("color value");
'bold the text of specified cell
WorkSheet ("CellAddress").Style.Font.Bold =True

'Italic the text of specified cell
WorkSheet ("CellAddress").Style.Font.Italic =True

'Strikeout the text of specified cell
WorkSheet ("CellAddress").Style.Font.Strikeout = True

'border style of specific cell 
WorkSheet ("CellAddress").Style.BottomBorder.Type = IronXL.Styles.BorderType.Dotted

'border color of specific cell 
WorkSheet ("CellAddress").Style.BottomBorder.SetColor("color value")
VB   C#

IronXL permet également de définir toutes les propriétés susmentionnées dans une plage spécifiée. Le style de cellule s'appliquera à toutes les cellules qui se trouvent dans cette plage, comme ceci :

//bold the text of specified range cells
WorkSheet ["FromCellAddress : ToCellAddress"].Style.Font.Bold =true;

//Italic the text of specified range cells
WorkSheet ["FromCellAddress : ToCellAddress"].Style.Font.Italic =true;

//Strikeout the text of specified range cells
WorkSheet ["FromCellAddress : ToCellAddress"].Style.Font.Strikeout = true;

//border style of specified range cells 
WorkSheet ["FromCellAddress : ToCellAddress"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Dotted;

//border color of specified range cells 
WorkSheet ["FromCellAddress : ToCellAddress"].Style.BottomBorder.SetColor("color value");
//bold the text of specified range cells
WorkSheet ["FromCellAddress : ToCellAddress"].Style.Font.Bold =true;

//Italic the text of specified range cells
WorkSheet ["FromCellAddress : ToCellAddress"].Style.Font.Italic =true;

//Strikeout the text of specified range cells
WorkSheet ["FromCellAddress : ToCellAddress"].Style.Font.Strikeout = true;

//border style of specified range cells 
WorkSheet ["FromCellAddress : ToCellAddress"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Dotted;

//border color of specified range cells 
WorkSheet ["FromCellAddress : ToCellAddress"].Style.BottomBorder.SetColor("color value");
'bold the text of specified range cells
WorkSheet ("FromCellAddress : ToCellAddress").Style.Font.Bold =True

'Italic the text of specified range cells
WorkSheet ("FromCellAddress : ToCellAddress").Style.Font.Italic =True

'Strikeout the text of specified range cells
WorkSheet ("FromCellAddress : ToCellAddress").Style.Font.Strikeout = True

'border style of specified range cells 
WorkSheet ("FromCellAddress : ToCellAddress").Style.BottomBorder.Type = IronXL.Styles.BorderType.Dotted

'border color of specified range cells 
WorkSheet ("FromCellAddress : ToCellAddress").Style.BottomBorder.SetColor("color value")
VB   C#

Voyons un exemple complet comprenant la création d'un nouveau WorkBook XL et l'application d'un style de cellule.

/**
Set Workbook Styling
anchor-set-excel-workbook-style
**/
using IronXL;
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
    WorkSheet ws = wb.CreateWorkSheet("Sheet1");
    ws ["B2:G2"].Value = "Range1";          
    ws ["B4:G4"].Value = "Range2";
    //------setting the styles----------
    ws ["B2:D2"].Style.Font.Bold = true;
    ws ["E2:G2"].Style.Font.Italic = true;
    ws ["B4:D4"].Style.Font.Strikeout = true;
    ws ["E4:G4"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Dotted;
    ws ["E4:G4"].Style.BottomBorder.SetColor("#ff6600");
    wb.SaveAs("sample.xlsx");
    Console.WriteLine("successfully created.");
    Console.ReadKey();
}
/**
Set Workbook Styling
anchor-set-excel-workbook-style
**/
using IronXL;
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
    WorkSheet ws = wb.CreateWorkSheet("Sheet1");
    ws ["B2:G2"].Value = "Range1";          
    ws ["B4:G4"].Value = "Range2";
    //------setting the styles----------
    ws ["B2:D2"].Style.Font.Bold = true;
    ws ["E2:G2"].Style.Font.Italic = true;
    ws ["B4:D4"].Style.Font.Strikeout = true;
    ws ["E4:G4"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Dotted;
    ws ["E4:G4"].Style.BottomBorder.SetColor("#ff6600");
    wb.SaveAs("sample.xlsx");
    Console.WriteLine("successfully created.");
    Console.ReadKey();
}
'''
'''Set Workbook Styling
'''anchor-set-excel-workbook-style
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
	Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
	Dim ws As WorkSheet = wb.CreateWorkSheet("Sheet1")
	ws ("B2:G2").Value = "Range1"
	ws ("B4:G4").Value = "Range2"
	'------setting the styles----------
	ws ("B2:D2").Style.Font.Bold = True
	ws ("E2:G2").Style.Font.Italic = True
	ws ("B4:D4").Style.Font.Strikeout = True
	ws ("E4:G4").Style.BottomBorder.Type = IronXL.Styles.BorderType.Dotted
	ws ("E4:G4").Style.BottomBorder.SetColor("#ff6600")
	wb.SaveAs("sample.xlsx")
	Console.WriteLine("successfully created.")
	Console.ReadKey()
End Sub
VB   C#

Voici à quoi ressemble notre WorkBook Excel nouvellement créé et nommé sample.xlsx :

Vous pouvez faire beaucoup plus avec vos feuilles de calcul Excel par programmation. Pour un tutoriel plus long sur C# ouvrir et écrire des fichiers Excel en .NET, suivez les exemples de code et les étapes fournies.


Tutoriel Accès rapide

C# Créer une documentation Excel

Explorez la documentation relative à la création de classeurs Excel, de feuilles de calcul, à l'application de styles de cellules et bien plus encore dans la Référence API pour IronXL.

C# Créer une documentation Excel