C&num ; Ouvrir des feuilles de calcul Excel

Chaknith Bin
Chaknith Bin
juin 17, 2020
Mise à jour octobre 20, 2024
Partager:
This article was translated from English: Does it need improvement?
Translated
View the article in English

Apprenez à utiliser les fonctions C# pour ouvrir des feuilles de calcul Excel et travailler avec des tableurs 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.


How to Open Excel Worksheet in C#

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

  2. Chargez 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

Accéder à la bibliothèque Excel C

Accédez à la bibliothèque Excel C# via DLL ou installez-la en utilisant votre gestionnaire NuGet préféré. 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() 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
$vbLabelText   $csharpLabel

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 WorkSheet spécifique d'un fichier Excel, IronXL propose la fonction WorkBook.GetWorkSheet(). 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")
$vbLabelText   $csharpLabel

La WorkSheet spécifiée s'ouvrira dans ws avec toutes ses données. Il existe également quelques autres moyens d'ouvrir une WorkSheet 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()
$vbLabelText   $csharpLabel

Maintenant, nous devons juste obtenir des données de la WorkSheet Excel ouverte.


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

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

  1. Obtenez la valeur d'une cellule spécifique de la feuille de calcul Excel WorkSheet.

  2. Obtenezdes données dans uneplage spécifique.

  3. Obteneztoutes les données de laFeuilleDeCalcul

    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 à partir d'une WorkSheet Excel est d'obtenir les valeurs des cellules spécifiques. 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()
$vbLabelText   $csharpLabel

ws est le WorkSheet 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()
$vbLabelText   $csharpLabel

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

Ce code affiche la sortie suivante :

1output related to 4.1. Obtenir une valeur de cellule spécifique

Valeur du fichier Excel sample.xlsx dans ligne [3].Colonne [1] et cellule C6 :

1excel related to 4.1. Obtenir une valeur de cellule spécifique

Les index des lignes et des colonnes commencent à 0.

Ouvrez les WorkSheets Excel et obtenez les données d'appel spécifiques, et vous pouvez lire plus sur comment lire des données Excel en C# à partir de feuilles Excel déjà ouvertes.

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

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

IronXL offre un moyen intelligent d'obtenir des données dans une plage spécifique. Nous spécifions simplement les valeurs from à to :

WorkSheet ["From Cell Address : To Cell Address"];
WorkSheet ["From Cell Address : To Cell Address"];
WorkSheet ("From Cell Address : To Cell Address")
$vbLabelText   $csharpLabel

Voyons un exemple de l'utilisation de la plage pour obtenir des données à partir d'une WorkSheet 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
$vbLabelText   $csharpLabel

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

2output related to 4.2. Obtenir des données d'une plage spécifique

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

2excel related to 4.2. Obtenir des données d'une plage spécifique

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

Cela affichera toutes les valeurs de A1 à E1. En savoir plus sur les plages Excel C# et comment travailler avec les 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 parcourrons toutes les cellules de WorkSheet et accèderons à leurs valeurs.

Dans cet exemple, deux boucles fonctionnent essentiellement : l'une sert à parcourir chaque ligne de la feuille de calcul Excel WorkSheet et l'autre à parcourir 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
$vbLabelText   $csharpLabel

La sortie du code ci-dessus affichera la valeur de chaque cellule de l'WorkSheet Excel ouvert complet.


Tutoriel Accès rapide

Documentation related to 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
Chaknith Bin
Ingénieur logiciel
Chaknith travaille sur IronXL et IronBarcode. Il possède une expertise approfondie en C# et .NET, aidant à améliorer le logiciel et à soutenir les clients. Ses idées issues des interactions avec les utilisateurs contribuent à de meilleurs produits, une documentation améliorée et une expérience globale enrichie.