Passer au contenu du pied de page
UTILISATION D'IRONXL

Comment ouvrir un fichier Excel dans ASP.NET Core

Ce tutoriel démontrera comment ouvrir un fichier Excel en utilisant IronXL dans une application ASP.NET Core en utilisant la bibliothèque IronXL. Il couvrira les étapes de base pour lire des fichiers Excel, puis afficher les données de ceux-ci et enregistrer les données modifiées dans le fichier.

Qu'est-ce qu'IronXL ?

IronXL est une bibliothèque Excel .NET qui fournit des fonctionnalités pour travailler avec des documents Excel sans nécessiter Microsoft Excel ou les dépendances Office Interop. Il prend en charge à la fois le .NET Framework et le .NET Core, fournissant des capacités pour écrire, manipuler et lire des fichiers Excel avec seulement quelques lignes de code. Pour un tutoriel détaillé sur la lecture de fichiers Excel, veuillez vous référer à ce tutoriel Excel.

IronXL library can read and write Excel documents, extract data from them, manipulate the data, and even create new Excel files from scratch. IronXL ne prend pas en charge uniquement le format .XLS mais est également compatible avec .XLSX, qui est un format de fichier basé sur XML développé par Microsoft pour représenter des tableurs.

Prérequis

Avant de plonger dans le code, assurez-vous d'avoir les éléments suivants :

  1. .NET Core 3.1 ou supérieur installé.
  2. Un IDE adapté au développement .NET (Microsoft Visual Studio est recommandé).
  3. Compréhension de base d'ASP.NET Core et Razor Pages.

Créer un nouveau projet .NET Core

  1. Ouvrez Microsoft Visual Studio et sélectionnez « Créer un nouveau projet ».
  2. Choisissez « Application Web ASP.NET Core » dans la liste des modèles de projet et cliquez sur « Suivant ».
  3. Donnez un nom à votre projet, par exemple, « Open_ExcelFile.NET_Core », sélectionnez un emplacement et cliquez sur « Suivant ».
  4. Choisissez « .NET Core » comme framework cible et « ASP.NET Core 3.1 ou supérieur » comme version. Dans la section « Modèle de projet », sélectionnez « Application Web » et cliquez sur « Créer ».

Installer le package IronXL

L'étape suivante consiste à installer le package IronXL dans ce projet nouvellement créé :

  1. Cliquez droit sur le projet dans l’Explorateur de solutions et sélectionnez « Gérer les packages NuGet ».
  2. Dans l'onglet « Parcourir », recherchez « IronXL » et cliquez sur « Installer » pour le package IronXL.Excel.

Comment ouvrir un fichier Excel dans ASP .NET Core, Figure 1 : Rechercher et installer le package IronXL dans l'interface utilisateur du gestionnaire de packages NuGet Recherche et installation du package IronXL dans l'interface utilisateur du gestionnaire de packages NuGet

  1. Attendez que le package soit installé.

Votre projet ASP.NET Core est maintenant configuré, et la bibliothèque IronXL est installée et prête à être utilisée.

Créer une Page Razor

Maintenant, créons une Page Razor pour écrire le code pour ouvrir le fichier Excel.

  1. Cliquez droit sur le dossier « Pages » dans l’Explorateur de solutions et sélectionnez « Ajouter » > « Page Razor ».
  2. Entrez « ExcelOpener » comme nom de la Page et cliquez sur « Ajouter ».

Comment ouvrir un fichier Excel dans ASP .NET Core, Figure 2 : Créer une nouvelle Page Razor Créer une nouvelle Page Razor

Cela créera deux fichiers : ExcelOpener.cshtml et ExcelOpener.cshtml.cs.

Le fichier ExcelOpener.cshtml contient le balisage HTML pour la page, et le fichier ExcelOpener.cshtml.cs contient le code C# associé à la page.

Lecture de fichiers Excel

Passons au code. La classe fournie ExcelOpenerModel est un modèle de Page Razor. Cette classe possède une propriété List<List<string>> Data, qui sera utilisée pour stocker les données lues à partir d'un fichier Excel.

public List<List<string>> Data { get; set; }

public ExcelOpenerModel()
{
    Data = new List<List<string>>();
}
public List<List<string>> Data { get; set; }

public ExcelOpenerModel()
{
    Data = new List<List<string>>();
}
Public Property Data() As List(Of List(Of String))

'INSTANT VB WARNING: The following constructor is declared outside of its associated class:
'ORIGINAL LINE: public ExcelOpenerModel()
Public Sub New()
	Data = New List(Of List(Of String))()
End Sub
$vbLabelText   $csharpLabel

Dans la méthode OnGet, IronXL est utilisé pour charger un fichier Excel et lire les données à partir de la feuille de calcul par défaut (la première feuille dans le classeur). Chaque ligne est représentée comme une List<string>, et toutes ces listes sont ensuite ajoutées à la propriété Data.

public void OnGet()
{
    try
    {
        Data = new List<List<string>>();
        // Load your Excel file
        var workbook = WorkBook.Load(@"C:\Users\Administrator\Documents\Loan.xlsx");

        // Select your Worksheet
        WorkSheet sheet = workbook.DefaultWorkSheet;

        for (int i = 0; i < sheet.RowCount; i++)
        {
            var row = new List<string>();
            for (int j = 0; j < sheet.ColumnCount; j++)
            {
                row.Add(sheet.GetCellAt(i, j).Value.ToString());
            }
            Data.Add(row);
        }
    }
    catch (Exception ex)
    {
        // Handle exceptions here
        Console.WriteLine(ex.Message);
    }
}
public void OnGet()
{
    try
    {
        Data = new List<List<string>>();
        // Load your Excel file
        var workbook = WorkBook.Load(@"C:\Users\Administrator\Documents\Loan.xlsx");

        // Select your Worksheet
        WorkSheet sheet = workbook.DefaultWorkSheet;

        for (int i = 0; i < sheet.RowCount; i++)
        {
            var row = new List<string>();
            for (int j = 0; j < sheet.ColumnCount; j++)
            {
                row.Add(sheet.GetCellAt(i, j).Value.ToString());
            }
            Data.Add(row);
        }
    }
    catch (Exception ex)
    {
        // Handle exceptions here
        Console.WriteLine(ex.Message);
    }
}
Public Sub OnGet()
	Try
		Data = New List(Of List(Of String))()
		' Load your Excel file
		Dim workbook = WorkBook.Load("C:\Users\Administrator\Documents\Loan.xlsx")

		' Select your Worksheet
		Dim sheet As WorkSheet = workbook.DefaultWorkSheet

		For i As Integer = 0 To sheet.RowCount - 1
			Dim row = New List(Of String)()
			For j As Integer = 0 To sheet.ColumnCount - 1
				row.Add(sheet.GetCellAt(i, j).Value.ToString())
			Next j
			Data.Add(row)
		Next i
	Catch ex As Exception
		' Handle exceptions here
		Console.WriteLine(ex.Message)
	End Try
End Sub
$vbLabelText   $csharpLabel

Méthodes clés expliquées

  • WorkBook.Load(filepath) : Cette méthode charge le document Excel depuis le chemin de fichier spécifié. Elle aide à charger et lire la feuille Excel.
  • workbook.DefaultWorkSheet : Cette propriété obtient la feuille Excel par défaut (première) dans le tableur Excel.
  • sheet.GetCellAt(i, j).Value.ToString() : Cela obtient la cellule aux indexes de ligne et colonne spécifiés et convertit sa valeur en chaîne. C'est un exemple de méthode d'index qui peut accéder à des cellules ou plages spécifiques dans un fichier Excel en fonction des indexes de ligne et de colonne.

Courte explication

Dans le fichier ExcelOpener.cshtml.cs, une classe nommée ExcelOpenerModel représente le modèle de Page Razor. Elle contient une propriété nommée Data de type List<List<string>>, qui contiendra les données du fichier Excel.

La méthode OnGet est appelée lorsque la page est demandée et est responsable de lire les données du fichier Excel. Elle utilise IronXL pour charger le fichier Excel, sélectionne la feuille de calcul par défaut, et parcourt les lignes et colonnes pour remplir la propriété Data.

Écriture de fichiers Excel

La méthode OnPost dans la classe ExcelOpenerModel est utilisée pour enregistrer les modifications dans le fichier Excel. Elle commence par charger le fichier Excel et récupère la feuille par défaut. Elle écrit ensuite les valeurs de Data dans les cellules de la feuille de calcul et enregistre le classeur dans un nouveau fichier.

public void OnPost()
{
    try
    {
        // Load your Excel file
        var workbook = WorkBook.Load(@"C:\Users\Administrator\Documents\Loan.xlsx");

        // Select your Worksheet
        var sheet = workbook.DefaultWorkSheet;

        for (int i = 0; i < Data.Count; i++)
        {
            for (int j = 0; j < Data[i].Count; j++)
            {
                sheet.SetCellValue(i, j, Data[i][j]);
            }
        }

        // Save the Excel file
        var filename = @"C:\ModifiedData.xlsx";
        workbook.SaveAs(filename);
    }
    catch (Exception ex)
    {
        // Handle exceptions here
        Console.WriteLine(ex.Message);
    }
}
public void OnPost()
{
    try
    {
        // Load your Excel file
        var workbook = WorkBook.Load(@"C:\Users\Administrator\Documents\Loan.xlsx");

        // Select your Worksheet
        var sheet = workbook.DefaultWorkSheet;

        for (int i = 0; i < Data.Count; i++)
        {
            for (int j = 0; j < Data[i].Count; j++)
            {
                sheet.SetCellValue(i, j, Data[i][j]);
            }
        }

        // Save the Excel file
        var filename = @"C:\ModifiedData.xlsx";
        workbook.SaveAs(filename);
    }
    catch (Exception ex)
    {
        // Handle exceptions here
        Console.WriteLine(ex.Message);
    }
}
Public Sub OnPost()
	Try
		' Load your Excel file
		Dim workbook = WorkBook.Load("C:\Users\Administrator\Documents\Loan.xlsx")

		' Select your Worksheet
		Dim sheet = workbook.DefaultWorkSheet

		For i As Integer = 0 To Data.Count - 1
			Dim j As Integer = 0
			Do While j < Data(i).Count
				sheet.SetCellValue(i, j, Data(i)(j))
				j += 1
			Loop
		Next i

		' Save the Excel file
		Dim filename = "C:\ModifiedData.xlsx"
		workbook.SaveAs(filename)
	Catch ex As Exception
		' Handle exceptions here
		Console.WriteLine(ex.Message)
	End Try
End Sub
$vbLabelText   $csharpLabel

Méthodes clés expliquées

  • sheet.SetCellValue(i, j, Data[i][j]) : Cette méthode définit la valeur de la cellule aux indexes de ligne et de colonne spécifiés.
  • workbook.SaveAs(filepath) : Cette méthode enregistre le classeur Excel au chemin de fichier spécifié.

Courte explication

La méthode OnPost est appelée lorsque le formulaire est soumis, et elle enregistre les données modifiées dans le fichier Excel. Elle charge le fichier Excel, sélectionne la feuille par défaut, et met à jour les valeurs des cellules en fonction des données modifiées reçues du formulaire.

Formulaire HTML pour la modification des données Excel

Dans ExcelOpener.cshtml, un formulaire est défini pour afficher et modifier les données du fichier Excel. Chaque valeur de cellule est affichée dans un champ de saisie de texte. Après modification, cliquer sur le bouton "Enregistrer" soumet le formulaire, déclenchant la méthode OnPost et enregistrant les modifications dans le fichier Excel.

@page
@model Open_Excel_File_.NET_Core.Pages.ExcelOpenerModel

<form method="post">
    <table class="table table-bordered table-striped">
        <!-- Bootstrap classes for tables -->
        @for (int i = 0; i < Model.Data.Count; i++)
        {
            <tr>
                @for (int j = 0; j < Model.Data[i].Count; j++)
                {
                    <td>
                        <input type="text" class="form-control" name="Data[@i][@j]" value="@Model.Data[i][j]" /> <!-- Bootstrap class for form controls -->
                    </td>
                }
            </tr>
        }
    </table>

    <input type="submit" class="btn btn-primary" value="Save" /> <!-- Bootstrap classes for buttons -->
</form>
@page
@model Open_Excel_File_.NET_Core.Pages.ExcelOpenerModel

<form method="post">
    <table class="table table-bordered table-striped">
        <!-- Bootstrap classes for tables -->
        @for (int i = 0; i < Model.Data.Count; i++)
        {
            <tr>
                @for (int j = 0; j < Model.Data[i].Count; j++)
                {
                    <td>
                        <input type="text" class="form-control" name="Data[@i][@j]" value="@Model.Data[i][j]" /> <!-- Bootstrap class for form controls -->
                    </td>
                }
            </tr>
        }
    </table>

    <input type="submit" class="btn btn-primary" value="Save" /> <!-- Bootstrap classes for buttons -->
</form>
HTML

Naviguer vers la page

Dans _Layout.cshtml, un lien vers la page est ajouté au menu de navigation. En cliquant sur ce lien, vous naviguerez vers la page d'ouverture d'Excel.

<li class="nav-item">
    <a class="nav-link text-dark" asp-area="" asp-page="/ExcelOpener">ExcelOpener</a>
</li>
<li class="nav-item">
    <a class="nav-link text-dark" asp-area="" asp-page="/ExcelOpener">ExcelOpener</a>
</li>
HTML

Exécution de l'application et explication du résultat

Construisez l'application en cliquant sur le bouton « Construire » dans Visual Studio ou en utilisant le raccourci Ctrl + Maj + B. Exécutez l'application en appuyant sur F5 ou en cliquant sur le bouton « Démarrer » dans Visual Studio.

Une fois l'application en cours d'exécution, accédez à la page « ExcelOpener » en cliquant sur le lien correspondant dans la barre de navigation. La page affichera les données de l'Excel dans un format tabulaire.

Vous pouvez modifier les données dans le tableau et cliquer sur le bouton « Enregistrer » pour enregistrer les modifications dans le fichier Excel.

Comment ouvrir un fichier Excel dans ASP .NET Core, Figure 3 : Afficher les données Excel dans l'application Web Afficher les données Excel dans l'application Web

Ce tutoriel a démontré comment ouvrir un fichier Excel en utilisant IronXL dans une application ASP.NET Core. IronXL fournit une façon simple et pratique de lire et manipuler des fichiers Excel. Vous pouvez explorer la documentation IronXL pour des fonctionnalités et des fonctionnalités plus avancées.

IronXL offre un essai gratuit, vous permettant d'évaluer ses capacités. Si vous le trouvez utile pour vos projets, vous pouvez acheter une licence à partir de $799.

Questions Fréquemment Posées

Comment puis-je ouvrir un fichier Excel dans une application ASP.NET Core ?

Vous pouvez ouvrir un fichier Excel dans une application ASP.NET Core en utilisant la bibliothèque IronXL. Tout d'abord, installez le package IronXL via NuGet, puis utilisez WorkBook.Load pour charger votre fichier Excel. Vous pouvez accéder aux données en sélectionnant la feuille de calcul et en parcourant les lignes et les colonnes.

Quels sont les avantages d'utiliser IronXL par rapport à Office Interop pour la manipulation d'Excel ?

IronXL vous permet de travailler avec des fichiers Excel sans avoir besoin des dépendances Microsoft Excel ou Office Interop, ce qui le rend idéal pour les environnements serveur où l'installation de Microsoft Office n'est pas réalisable. Il prend en charge à la fois .NET Framework et .NET Core et gère les formats .XLS et .XLSX.

Comment afficher les données Excel dans une application web en utilisant les pages Razor ?

Pour afficher les données Excel dans une application web, vous pouvez créer une page Razor qui utilise IronXL pour charger et lire les données Excel. Utilisez un formulaire HTML pour rendre les données de chaque cellule dans des champs de saisie de texte, permettant aux utilisateurs de visualiser et de modifier les données dans l'interface web.

Qu'est-ce qui est nécessaire pour configurer un projet ASP.NET Core pour les opérations Excel ?

Pour configurer un projet ASP.NET Core pour les opérations Excel, vous devez avoir .NET Core 3.1 ou supérieur, un IDE comme Microsoft Visual Studio et une compréhension de base d'ASP.NET Core et des pages Razor. Installez le package IronXL à partir de NuGet pour commencer à travailler avec des fichiers Excel.

Comment puis-je modifier et enregistrer les modifications apportées à un fichier Excel dans ASP.NET Core ?

Vous pouvez modifier et enregistrer les modifications apportées à un fichier Excel en permettant aux utilisateurs de modifier les données via un formulaire HTML dans une page Razor. Utilisez les méthodes IronXL comme sheet.SetCellValue pour mettre à jour les données et workbook.SaveAs pour enregistrer le fichier Excel modifié.

Quelles sont les étapes à suivre pour configurer une page Razor pour les opérations sur les fichiers Excel ?

Configurer une page Razor implique de créer une nouvelle page Razor dans votre projet ASP.NET Core. Utilisez la page Razor pour charger les données Excel avec IronXL, les afficher dans un formulaire web et gérer les soumissions de formulaire pour mettre à jour et enregistrer les modifications dans le fichier Excel.

Comment puis-je dépanner si mon fichier Excel ne se charge pas dans ASP.NET Core ?

Si votre fichier Excel ne se charge pas, assurez-vous que le chemin du fichier est correct et accessible par l'application. Vérifiez que IronXL est correctement installé et que le format de fichier est pris en charge. Vérifiez les exceptions ou les messages d'erreur qui pourraient indiquer quel est le problème.

Puis-je essayer la bibliothèque IronXL avant de l'acheter ?

Oui, IronXL propose une version d'essai gratuite qui vous permet d'évaluer ses capacités. Vous pouvez utiliser cet essai pour vous assurer qu'il répond à vos besoins avant de décider d'acheter une licence.

Jordi Bardia
Ingénieur logiciel
Jordi est le plus compétent en Python, C# et C++, et lorsqu'il ne met pas à profit ses compétences chez Iron Software, il programme des jeux. Partageant les responsabilités des tests de produit, du développement de produit et de la recherche, Jordi apporte une immense valeur à l'amé...
Lire la suite