Passer au contenu du pied de page
UTILISATION D'IRONXL

Comment exporter vers CSV dans Blazor

Aujourd'hui, nous allons plonger dans l'utilisation de Blazor et IronXL pour convertir un fichier Excel au format CSV. À la fin de ce tutoriel, vous serez en mesure de créer une application Blazor de base qui exporte des données Excel dans divers formats, y compris CSV.

Introduction à IronXL

IronXL is a powerful .NET Excel library designed to work with Excel files in a wide range of formats, including XLS, XLSX, XLSM, XLTX, and CSV. It allows developers to read, write, and manipulate Excel data programmatically without the need for Microsoft Office or Excel Interop.

Avec IronXL, vous pouvez créer, charger et sauvegarder des cahiers Excel, ainsi que lire et écrire des données dans des cellules ou des plages individuelles. It also supports advanced features such as formatting, formulas, charts, and pivot tables. IronXL est compatible avec divers frameworks .NET et peut être utilisé avec des langages populaires tels que C# et VB.NET.

Étapes pour convertir un fichier Excel en CSV

Configurer votre projet Blazor

Pour commencer, vous devez créer un nouveau projet Blazor Server. Ouvrez Visual Studio, créez un nouveau projet et sélectionnez le modèle "Blazor Server App". Nommez votre projet et cliquez sur "Crée".

Une fois votre projet créé, ouvrez le dossier Pages et localisez le fichier Index.razor. C'est là où les composants Blazor sont ajoutés et codés pour gérer les téléchargements et les conversions de fichiers.

Installer IronXL

Avant de commencer à écrire du code, il est nécessaire d'installer la bibliothèque IronXL. Ouvrez la Console du Gestionnaire de Packages dans Visual Studio et exécutez la commande suivante :

Install-Package IronXL.Excel

Cette commande installera la bibliothèque IronXL dans votre projet Blazor. Vous êtes maintenant prêt à commencer à écrire du code !

Créer le composant de téléchargement de fichier

Tout d'abord, créez un composant de téléchargement de fichier de base qui permet aux utilisateurs de télécharger un fichier Excel existant. Ensuite, le composant InputFile est ajouté à partir de l'espace de noms Microsoft.AspNetCore.Components.Forms. Ajoutez le code suivant à votre fichier Index.razor, sous la ligne "@page "" :

@using Microsoft.AspNetCore.Components.Forms
@using IronXL
@using System.IO
@using System.Threading.Tasks

<div class="container">
    <h3>File Upload</h3>

    <InputFile class="button" OnChange="@OnInputFileChange" accept=".xls,.xlsx,.xlsm,.xltx,.csv,.tsv" />
    <h3>Selected File: @originalFileName</h3>
    <h3 style="color:bisque">Is File converted: <span>@message</span></h3>
</div>

Ce code configure le composant de téléchargement de fichiers, complet avec un bouton et une zone de message pour afficher le statut de la conversion du fichier. L'attribut accept sur le composant InputFile spécifie les formats de fichier acceptés.

Écrire le code de conversion de fichier

Maintenant, écrivons le code qui gère le téléchargement et la conversion de fichiers. Une combinaison d'IronXL, Blazor et C# sera utilisée pour accomplir cette tâche. Vous pouvez utiliser IronXL pour convertir un CSV en fichier Excel.

Ajoutez le code suivant à votre fichier Index.razor, sous l'élément div que vous avez ajouté précédemment.

@code {
    private string originalFileName;
    private string message = "";

    private async Task OnInputFileChange(InputFileChangeEventArgs e)
    {
        var file = e.File;
        originalFileName = file.Name;

        try
        {
            // Read the uploaded file into a memory stream
            using var memoryStream = new MemoryStream();
            await file.OpenReadStream().CopyToAsync(memoryStream);

            // Load the workbook using IronXL
            WorkBook workBook = WorkBook.Load(memoryStream);

            // Save the workbook as a CSV file
            string outputPath = "sample.csv";
            workBook.SaveAsCsv(outputPath);

            message = "Conversion completed!";
        }
        catch (Exception ex)
        {
            message = $"An error occurred: {ex.Message}";
        }
    }
}

Ce code définit une méthode privée appelée OnInputFileChange, qui sera déclenchée lorsqu'une feuille de calcul Excel est téléchargée à l'aide du composant InputFile; Excel peut être au format XLS ou XLSX. Le code lit le fichier Excel basique téléchargé, le charge dans un objet WorkBook, puis enregistre le WorkBook sous forme de fichier CSV. Le statut de la conversion est affiché dans la zone de message sur la page.

Décomposition du code

Tout d'abord, regardez le code complet :

@page "/"
@using Microsoft.AspNetCore.Components.Forms
@using IronXL
@using System.IO
@using System.Threading.Tasks

<style>
    body{
        background-color: skyblue
    }
    .container {
        max-width: 800px;
        margin: 0 auto;
        font-family: Arial, sans-serif;
    }

    h3 {
        margin-top: 30px;
        font-size: 30px;
        margin-bottom: 30px;
    }

    .button {
        background-color: #4CAF50;
        border: none;
        color: white;
        padding: 15px 32px;
        text-align: center;
        text-decoration: none;
        display: inline-block;
        font-size: 16px;
        margin: 15px 0;
        cursor: pointer;
    }
    span {
        font-size: 20px;
    }
</style>

<div class="container">
    <h3>File Upload</h3>

    <InputFile class="button" OnChange="@OnInputFileChange" accept=".xls,.xlsx,.xlsm,.xltx,.csv,.tsv" />
    <h3>Selected File: @originalFileName</h3>
    <h3 style="color:bisque">Is File converted: <span>@message</span></h3>
</div>

@code {
    private string originalFileName;
    private string message = "";

    private async Task OnInputFileChange(InputFileChangeEventArgs e)
    {
        var file = e.File;
        originalFileName = file.Name;

        try
        {
            // Read the uploaded file into a memory stream
            using var memoryStream = new MemoryStream();
            await file.OpenReadStream().CopyToAsync(memoryStream);

            // Load the workbook using IronXL
            WorkBook workBook = WorkBook.Load(memoryStream);

            // Save the workbook as a CSV file
            string outputPath = "sample.csv";
            workBook.SaveAsCsv(outputPath);

            message = "Conversion completed!";
        }
        catch (Exception ex)
        {
            message = $"An error occurred: {ex.Message}";
        }
    }
}

Analysons plus en détail le code :

  1. Lorsqu'un fichier est téléchargé, la méthode OnInputFileChange est déclenchée, et un objet InputFileChangeEventArgs lui est passé. Cet objet contient des informations sur le fichier téléchargé, telles que son nom et sa taille.
  2. Stockez le nom du fichier original dans une variable appelée originalFileName pour l'afficher sur la page.
  3. Dans un bloc try-catch, créez un nouvel objet MemoryStream pour lire le contenu du fichier téléchargé. L'instruction using garantit que le flux de mémoire est correctement éliminé une fois qu'il n'est plus nécessaire.
  4. Utilisez le mot-clé await pour copier de manière asynchrone le contenu du fichier téléchargé dans le flux de mémoire. Cela garantit que cette application reste réactive pendant la lecture du fichier.
  5. Ensuite, la méthode WorkBook.Load est utilisée pour charger le contenu du flux de mémoire dans un objet WorkBook. Cet objet représente l'ensemble du classeur Excel, y compris ses feuilles, ses cellules et ses données.
  6. Ensuite, spécifiez un nom de fichier de sortie pour le fichier CSV converti. Dans ce cas, nous utilisons le nom "sample.csv".
  7. La méthode SaveAsCsv de l'objet WorkBook est ensuite utilisée pour enregistrer le classeur sous la forme d'un fichier CSV avec le nom de fichier de sortie spécifié.
  8. Si la conversion réussit, un message est affiché pour indiquer que la conversion a été effectuée. En cas d'erreur, capturez l'exception et affichez un message d'erreur.

Tester l'application

Maintenant que l'application Blazor est complète, il est temps de la tester ! Appuyez sur F5 pour exécuter votre application dans Visual Studio. Une fois l'application lancée, vous devriez voir un bouton de téléchargement de fichier sur la page.

Comment exporter en CSV dans Blazor, Figure 1 : Exécuter l'application Blazor Exécuter l'application Blazor

Cliquez sur le bouton et sélectionnez un fichier Excel à télécharger. Les formats de fichiers acceptés sont listés dans l'attribut accept du composant InputFile.

Comment exporter en CSV dans Blazor, Figure 2 : Sélectionner un fichier Excel Sélectionner un fichier Excel

Après avoir sélectionné un fichier, l'application lira le fichier, le convertira en format CSV à l'aide d'IronXL et enregistrera le fichier converti avec le nom de fichier de sortie spécifié. Vous devriez voir un message indiquant le statut de la conversion, ainsi que le nom du fichier original.

Comment exporter en CSV dans Blazor, Figure 3 : Statut de la conversion Statut de la conversion

Félicitations ! Vous avez réussi à construire une application Blazor qui peut exporter des fichiers Excel en format CSV à l'aide d'IronXL. La capture d'écran suivante montre le résultat du programme ci-dessus.

Comment exporter en CSV dans Blazor, Figure 4 : Le fichier Excel de sortie Le fichier Excel de sortie

Conclusion

Ce tutoriel a démontré comment construire une application Blazor qui peut exporter des fichiers Excel en format CSV à l'aide d'IronXL. Nous avons démontré comment créer un composant de téléchargement de fichiers, gérer les téléchargements de fichiers et convertir les fichiers Excel en format CSV en utilisant les puissantes fonctionnalités d'IronXL.

En incorporant IronXL dans vos applications Blazor, vous pouvez facilement gérer une variété de tâches liées à Excel, telles que l'importation, la manipulation et l'exportation de données. Cela ouvre une large gamme de possibilités pour vos projets et vous aide à offrir une expérience plus riche à vos utilisateurs. Vous pouvez convertir un CSV en Excel dans Blazor à l'aide de la bibliothèque IronXL.

IronXL offre un essai gratuit qui vous permet de tester ses fonctionnalités et capacités avant de vous engager à un achat. Après la période d'essai, les licences pour IronXL commencent à $799.

Questions Fréquemment Posées

Comment puis-je convertir un fichier Excel en format CSV dans une application Blazor ?

Vous pouvez convertir un fichier Excel en format CSV dans une application Blazor en utilisant IronXL. Tout d'abord, configurez un projet Blazor Server, installez IronXL via la console du gestionnaire de paquets, et créez un composant de téléchargement de fichier avec le composant `InputFile`. Ensuite, lisez le fichier Excel dans un flux de mémoire, chargez-le dans un objet WorkBook en utilisant IronXL, et utilisez la méthode SaveAsCsv pour exporter le fichier en CSV.

Quelle est l'utilité d'utiliser IronXL dans les applications Blazor ?

IronXL est utilisé dans les applications Blazor pour gérer les données Excel sans avoir besoin de Microsoft Office ou d'Excel Interop. Il permet aux développeurs de lire, manipuler et exporter des données Excel de manière programmatique, permettant des fonctionnalités telles que l'importation de données, le formatage et la conversion de fichiers Excel en formats tels que CSV.

Puis-je tester mon application Blazor pour convertir des fichiers Excel en CSV ?

Oui, vous pouvez tester votre application Blazor en l'exécutant dans Visual Studio. Utilisez le composant de téléchargement de fichier pour sélectionner un fichier Excel. L'application convertira le fichier sélectionné en CSV en utilisant IronXL et fournira des commentaires sur l'état de la conversion.

Quels sont les avantages d'utiliser IronXL par rapport à Excel Interop ?

L'utilisation d'IronXL par rapport à Excel Interop offre plusieurs avantages, y compris la capacité de manipuler des fichiers Excel sans avoir besoin d'installer Microsoft Office, le support de plusieurs formats Excel (XLS, XLSX, CSV) et la compatibilité avec les applications .NET, améliorant les performances et la facilité de déploiement.

Comment installer IronXL dans mon projet Blazor ?

Pour installer IronXL dans votre projet Blazor, ouvrez la console du gestionnaire de paquets dans Visual Studio et exécutez la commande : Install-Package IronXL.Excel. Cela installe la bibliothèque, vous permettant de commencer à travailler avec les fichiers Excel de manière programmatique.

Quels formats de fichiers Excel sont pris en charge par IronXL pour la conversion dans Blazor ?

IronXL prend en charge une variété de formats de fichiers Excel pour la conversion dans Blazor, y compris .xls, .xlsx, .xlsm, .xltx, et .csv, ce qui permet une manipulation flexible des données Excel dans vos applications.

Comment puis-je créer un composant de téléchargement de fichier dans une application Blazor ?

Pour créer un composant de téléchargement de fichier dans une application Blazor, utilisez le composant `InputFile` du namespace Microsoft.AspNetCore.Components.Forms. Ce composant permet aux utilisateurs de télécharger des fichiers, qui peuvent ensuite être traités en utilisant IronXL pour des tâches telles que la conversion d'Excel en CSV.

Y a-t-il un essai gratuit disponible pour IronXL ?

Oui, IronXL propose un essai gratuit qui vous permet d'explorer ses fonctionnalités et capacités avant d'effectuer un achat. Après la période d'essai, vous pouvez choisir parmi diverses options de licence en fonction des besoins de votre projet.

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