C&num ; Ouvrir des feuilles de calcul Excel

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

Apprenez à utiliser les fonctions C# d'ouverture de feuilles de calcul Excel pour travailler avec des feuilles de calcul Excel et ouvrir tous les types de fichiers, y compris (.xls, .csv, .tsv et .xlsx). Ouvrir une feuille de calcul Excel, lire ses données et la manipuler de manière programmatique est essentiel pour de nombreux développeurs d'applications. Voici une solution pour tous les développeurs qui veulent une méthode avec moins de lignes de code et des temps de réponse plus rapides.


Comment ouvrir une feuille de calcul Excel dans C# ;

  1. Installer la bibliothèque Excel pour lire les fichiers Excel.

  2. Charge le fichier Excel existant dans un objet Workbook.

  3. Définir la feuille de calcul Excel par défaut.

  4. Lire la valeur du classeur Excel.

  5. Traiter la valeur en conséquence et l'afficher.

    Étape 1

1. Bibliothèque Access Excel C

Accéder à la Bibliothèque Excel C# via DLL ou l'installer à l'aide de votre logiciel préféré Gestionnaire NuGet. Une fois que vous avez accédé à la bibliothèque IronXL et que vous l'avez ajoutée à votre projet, vous pouvez utiliser toutes les fonctions ci-dessous pour ouvrir des feuilles de calcul Excel en C#.

Install-Package IronXL.Excel

Comment faire Tutoriel

2. Charger un fichier Excel

Utilisez la fonction WorkBook.Load() fonction d'IronXL pour charger des fichiers Excel dans le projet. Cette fonction nécessite un paramètre de type chaîne, qui est le chemin du fichier Excel à ouvrir. Voir ici :

WorkBook wb = WorkBook.Load("Path");//Excel file path
WorkBook wb = WorkBook.Load("Path");//Excel file path
Dim wb As WorkBook = WorkBook.Load("Path") 'Excel file path
VB   C#

Le fichier Excel du chemin spécifié sera chargé dans wb. Nous devons maintenant spécifier la feuille de calcul Excel qui sera ouverte.


3. Ouvrir une feuille de travail Excel

Pour ouvrir une Feuille de Travail spécifique d'un fichier Excel, IronXL fournit la fonction WorkBook.GetWorkSheet()` fonction. Ainsi, nous pouvons facilement ouvrir la feuille de travail par son nom :

WorkSheet ws = WorkBook.GetWorkSheet("SheetName");
WorkSheet ws = WorkBook.GetWorkSheet("SheetName");
Dim ws As WorkSheet = WorkBook.GetWorkSheet("SheetName")
VB   C#

La Feuille de Travail spécifiée s'ouvrira dans ws avec toutes ses données. Il existe également d'autres moyens d'ouvrir une "feuille de travail" spécifique d'un fichier Excel :

/**
Open Excel Worksheet
anchor-open-excel-worksheet
**/
//by sheet index
WorkSheet ws = wb.WorkSheets [0];
//for the default
WorkSheet ws = wb.DefaultWorkSheet; 
//for the first sheet: 
WorkSheet ws = wb.WorkSheets.First();
//for the first or default sheet:
WorkSheet ws = wb.WorkSheets.FirstOrDefault();
/**
Open Excel Worksheet
anchor-open-excel-worksheet
**/
//by sheet index
WorkSheet ws = wb.WorkSheets [0];
//for the default
WorkSheet ws = wb.DefaultWorkSheet; 
//for the first sheet: 
WorkSheet ws = wb.WorkSheets.First();
//for the first or default sheet:
WorkSheet ws = wb.WorkSheets.FirstOrDefault();
'''
'''Open Excel Worksheet
'''anchor-open-excel-worksheet
'''*
'by sheet index
Dim ws As WorkSheet = wb.WorkSheets (0)
'for the default
Dim ws As WorkSheet = wb.DefaultWorkSheet
'for the first sheet: 
Dim ws As WorkSheet = wb.WorkSheets.First()
'for the first or default sheet:
Dim ws As WorkSheet = wb.WorkSheets.FirstOrDefault()
VB   C#

Il ne nous reste plus qu'à récupérer les données de la feuille de travail Excel ouverte.


4. Obtenir des données de la feuille de travail

Nous pouvons obtenir des données à partir d'une feuille de travail Excel ouverte de la manière suivante :

  1. Obtenir la valeur d'une cellule spécifique de la feuille de travail Excel.

  2. obtenir des données dans une plage spécifique.

  3. obtenir toutes les données de WorkSheet.

    Voyons un par un comment obtenir des données de différentes manières à l'aide de ces exemples :

4.1. Obtenir une valeur de cellule spécifique

La première approche pour obtenir des données d'une feuille de travail Excel consiste à récupérer les valeurs spécifiques des cellules. On peut y accéder de la manière suivante :

string val = ws ["Cell Address"].ToString();
string val = ws ["Cell Address"].ToString();
Dim val As String = ws ("Cell Address").ToString()
VB   C#

ws est la Feuille de Travail du fichier Excel, comme nous le verrons dans les exemples suivants. Il est également possible d'accéder à des valeurs de cellules spécifiques en spécifiant l'"indice de ligne" et l'"indice de colonne"

string val=ws.Rows [RowIndex].Columns [ColumnIndex].Value.ToString();
string val=ws.Rows [RowIndex].Columns [ColumnIndex].Value.ToString();
Dim val As String=ws.Rows (RowIndex).Columns (ColumnIndex).Value.ToString()
VB   C#

Voyons un exemple d'ouverture d'un fichier Excel dans notre projet C# et d'obtention de valeurs de cellules spécifiques en utilisant les deux méthodes :

/**
Get Cell Value
anchor-get-specific-cell-value
**/
using IronXL;
static void Main(string [] args)
{
    //Load Excel file
    WorkBook wb = WorkBook.Load("sample.xlsx");
    //Open WorkSheet
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    //Get value By Cell Address
    Int32 int_val= ws ["C6"].Int32Value;
    //Get value by Row and Column Address
    string str_val=ws.Rows [3].Columns [1].Value.ToString();

    Console.WriteLine("Getting Value by Cell Address: {0}",int_val);
    Console.WriteLine("Getting Value by Row and Column Indexes: {0}",str_val);
    Console.ReadKey();
}
/**
Get Cell Value
anchor-get-specific-cell-value
**/
using IronXL;
static void Main(string [] args)
{
    //Load Excel file
    WorkBook wb = WorkBook.Load("sample.xlsx");
    //Open WorkSheet
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    //Get value By Cell Address
    Int32 int_val= ws ["C6"].Int32Value;
    //Get value by Row and Column Address
    string str_val=ws.Rows [3].Columns [1].Value.ToString();

    Console.WriteLine("Getting Value by Cell Address: {0}",int_val);
    Console.WriteLine("Getting Value by Row and Column Indexes: {0}",str_val);
    Console.ReadKey();
}
'''
'''Get Cell Value
'''anchor-get-specific-cell-value
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
	'Load Excel file
	Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
	'Open WorkSheet
	Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
	'Get value By Cell Address
	Dim int_val As Int32= ws ("C6").Int32Value
	'Get value by Row and Column Address
	Dim str_val As String=ws.Rows (3).Columns (1).Value.ToString()

	Console.WriteLine("Getting Value by Cell Address: {0}",int_val)
	Console.WriteLine("Getting Value by Row and Column Indexes: {0}",str_val)
	Console.ReadKey()
End Sub
VB   C#

Ce code affiche la sortie suivante :

Valeur du fichier Excel sample.xlsx dans row [3]colonne [1] et la cellule C6:

L'index des lignes et des colonnes commence à 0.

Ouvrez Excel WorkSheets et obtenez les données d'appel spécifiques, et vous pouvez en savoir plus sur la façon de procéder lire des données Excel en C# à partir de feuilles de calcul Excel déjà ouvertes.

4.2. Obtenir des données d'une plage spécifique

Voyons maintenant comment obtenir des données dans un intervalle spécifique à partir d'une feuille de travail Excel ouverte en utilisant IronXL.

IronXL offre un moyen intelligent d'obtenir des données dans une plage spécifique. Il suffit de spécifier les valeurs from et to :

WorkSheet ["From Cell Address : To Cell Address"];
WorkSheet ["From Cell Address : To Cell Address"];
WorkSheet ("From Cell Address : To Cell Address")
VB   C#

Voyons un exemple d'utilisation d'une plage pour obtenir des données à partir d'une feuille de travail Excel ouverte :

/**
Get Data from Range
anchor-get-data-from-specific-range
**/
using IronXL;
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    //specify the range 
    foreach (var cell in ws ["B2:B10"])
    {
        Console.WriteLine("value is: {0}", cell.Text);
    }
    Console.ReadKey();
}
/**
Get Data from Range
anchor-get-data-from-specific-range
**/
using IronXL;
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    //specify the range 
    foreach (var cell in ws ["B2:B10"])
    {
        Console.WriteLine("value is: {0}", cell.Text);
    }
    Console.ReadKey();
}
'''
'''Get Data from Range
'''anchor-get-data-from-specific-range
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
	Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
	Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
	'specify the range 
	For Each cell In ws ("B2:B10")
		Console.WriteLine("value is: {0}", cell.Text)
	Next cell
	Console.ReadKey()
End Sub
VB   C#

Le code ci-dessus extrait les données de B2 à B10 comme suit :

Nous pouvons voir les valeurs du fichier Excel sample.xlsx, de B2 à B10 :

4.3. Obtenir les données de la ligne

Nous pouvons également décrire un intervalle pour une ligne spécifique. Par exemple :

WorkSheet ["A1:E1"]
WorkSheet ["A1:E1"]
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'WorkSheet ["A1:E1"]
VB   C#

Ceci affichera toutes les valeurs de A1 à E1. En savoir plus Plages C# Excel et comment travailler avec différentes identifications de lignes et de colonnes.

4.4. Récupérer toutes les données de la feuille de calcul

Il est également facile d'obtenir toutes les données des cellules de la feuille de calcul Excel ouverte à l'aide d'IronXL. Pour cette tâche, nous devons accéder à chaque valeur de cellule par les index de ligne et de colonne. Voyons l'exemple suivant, dans lequel nous allons parcourir toutes les cellules de la Feuille de Travail et accéder à ses valeurs.

Dans cet exemple, deux boucles fonctionnent : l'une parcourt chaque ligne de la feuille de travail Excel et l'autre parcourt chaque colonne d'une ligne spécifique. De cette manière, chaque valeur de cellule est facilement accessible.

/**
Get All Data
anchor-get-all-data-from-worksheet
**/
using IronXL;
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Load("sample2.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    //access all rows of open Excel WorkSheet
    for (int i = 0; i < ws.Rows.Count(); i++)
    {    
        //access all columns of specific row
        for (int j = 0; j < ws.Columns.Count(); j++)
        {
            //Access each cell for specified column
            Console.WriteLine(ws.Rows [i].Columns [j].Value.ToString());
        }
    }
    Console.ReadKey();
}
/**
Get All Data
anchor-get-all-data-from-worksheet
**/
using IronXL;
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Load("sample2.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    //access all rows of open Excel WorkSheet
    for (int i = 0; i < ws.Rows.Count(); i++)
    {    
        //access all columns of specific row
        for (int j = 0; j < ws.Columns.Count(); j++)
        {
            //Access each cell for specified column
            Console.WriteLine(ws.Rows [i].Columns [j].Value.ToString());
        }
    }
    Console.ReadKey();
}
'''
'''Get All Data
'''anchor-get-all-data-from-worksheet
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
	Dim wb As WorkBook = WorkBook.Load("sample2.xlsx")
	Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
	'access all rows of open Excel WorkSheet
	For i As Integer = 0 To ws.Rows.Count() - 1
		'access all columns of specific row
		For j As Integer = 0 To ws.Columns.Count() - 1
			'Access each cell for specified column
			Console.WriteLine(ws.Rows (i).Columns (j).Value.ToString())
		Next j
	Next i
	Console.ReadKey()
End Sub
VB   C#

La sortie du code ci-dessus affichera la valeur de chaque cellule de la feuille de travail Excel ouverte.


Tutoriel Accès rapide

Ressource de référence de l'API

Utilisez la ressource IronXL API Reference comme guide pour toutes les fonctions et classes à utiliser dans vos projets, ainsi que pour les espaces de noms, les champs de méthodes, les enums et les ensembles de caractéristiques.

Ressource de référence de l'API