using IronXL;
using System;
using System.Linq;
// Supported for XLSX, XLS, XLSM, XLTX, CSV and TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");
// Select worksheet at index 0
WorkSheet workSheet = workBook.WorkSheets[0];
// Get any existing worksheet
WorkSheet firstSheet = workBook.DefaultWorkSheet;
// Select a cell and return the converted value
int cellValue = workSheet["A2"].IntValue;
// Read from ranges of cells elegantly.
foreach (var cell in workSheet["A2:A10"])
{
Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
// Calculate aggregate values such as Min, Max and Sum
decimal sum = workSheet["A2:A10"].Sum();
// Linq compatible
decimal max = workSheet["A2:A10"].Max(c => c.DecimalValue);
Aujourd'hui, nous allons voir comment utiliser 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 différents formats, y compris CSV.
Introduction à IronXL
IronXL est un puissant logiciel debibliothèque Excel .NET conçu pour travailler avec des fichiers Excel enune large gamme de formatsy compris XLS, XLSX, XLSM, XLTX et CSV. Il permet aux développeurs de lire, d'écrire et de manipuler des données Excel de manière programmatique sans avoir besoin de Microsoft Office ou d'Excel Interop.
Avec IronXL, vous pouvez créer, charger et sauvegarderClasseurs Excelainsi que la lecture et l'écriture de données dans des cellules ou des plages individuelles. Il prend également en charge des fonctions avancées telles quemise en forme, formules, graphiqueset les tableaux croisés dynamiques. IronXL est compatible avec divers Frameworks .NET et peut être utilisé avec des langages populaires tels que C# et VB.NET.
Etapes pour convertir un fichier Excel en CSV
Mise en place du 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éer"
Une fois votre projet créé, ouvrez le dossier Pages et localisez le fichier Index.razor. C'est là que les composants Blazor sont ajoutés et codés pour gérer les téléchargements et les conversions de fichiers.
Installation d'IronXL
Avant de commencer à écrire du code, il est nécessaire d'installer la bibliothèque IronXL. Ouvrez la console du gestionnaire de paquets 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 à écrire du code!
Création du composant de téléchargement de fichiers
Tout d'abord, créez un composant de téléchargement de fichier basique 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"/" :
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'@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>
$vbLabelText $csharpLabel
Ce code met en place le composant de téléchargement de fichiers, avec un bouton et une zone de message pour afficher l'état de la conversion du fichier. L'attribut accept du composant InputFile spécifie les formats de fichiers acceptés.
Écriture du code de conversion des fichiers
Maintenant, écrivons le code qui gère le téléchargement et la conversion des fichiers. Une combinaison d'IronXL, de Blazor et de C# sera utilisée pour accomplir cette tâche. Vous pouvez utiliser IronXL pourconvertir un fichier CSV en fichier Excel.
Ajoutez le code suivant à votre fichier Index.razor, sous l'élément div que vous avez ajouté plus tôt.
@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}";
}
}
}
@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}";
}
}
}
code
If True Then
private String originalFileName
private String message = ""
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
' private async Task OnInputFileChange(InputFileChangeEventArgs e)
' {
' var file = e.File;
' originalFileName = file.Name;
'
' try
' {
' ' Read the uploaded file into a memory stream
' 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 = string.Format("An error occurred: {0}", ex.Message);
' }
' }
End If
$vbLabelText $csharpLabel
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 de base téléchargé, le charge dans un fichierWorkBook (livre de travail)(livre de travail) puis enregistre le WorkBook sous la forme d'un fichier CSV. Le statut de la conversion est affiché dans la zone de message de la page.
page "/" [using] Microsoft.AspNetCore.Components.Forms [using] IronXL [using] System.IO [using] ReadOnly Property body() As System.Threading.Tasks(Of style)
background-color: skyblue
End Property
.container
If True Then
max-width: 800px
margin:
0 auto
font-family: Arial, sans-serif
End If
h3
If True Then
margin-top: 30px
font-size: 30px
margin-bottom: 30px
End If
.button
If True Then
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
End If
span
If True Then
font-size: 20px
End If
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: </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
".xls,.xlsx,.xlsm,.xltx,.csv,.tsv" /> (Of h3) Selected File: originalFileName</h3> <h3 style="color:bisque"> [Is] File converted: (Of span) message</span></h3> </div> code
If True Then
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: </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
"@OnInputFileChange" accept=".xls,.xlsx,.xlsm,.xltx,.csv,.tsv" /> (Of h3) Selected File: originalFileName</h3> <h3 style
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: </style> <div class="container"> <h3> File Upload</h3> <InputFile class="button" OnChange="@OnInputFileChange" accept
"button" OnChange="@OnInputFileChange" accept
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: </style> <div class="container"> <h3> File Upload</h3> <InputFile class="button" OnChange
"container"> (Of h3) File Upload</h3> <InputFile class="button" OnChange
</style> <div class="container"> (Of h3) File Upload</h3> <InputFile class
private String originalFileName
private String message = ""
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
' private async Task OnInputFileChange(InputFileChangeEventArgs e)
' {
' var file = e.File;
' originalFileName = file.Name;
'
' try
' {
' ' Read the uploaded file into a memory stream
' 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 = string.Format("An error occurred: {0}", ex.Message);
' }
' }
End If
$vbLabelText $csharpLabel
Décomposons le code plus en détail :
Lorsqu'un fichier est téléchargé, la méthode OnInputFileChange est déclenchée et un objet InputFileChangeEventArgs lui est transmis. Cet objet contient des informations sur le fichier téléchargé, telles que son nom et sa taille.
Stocker le nom du fichier original dans une variable appelée originalFileName pour l'afficher sur la page.
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.
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 l'application reste réactive pendant la lecture du fichier.
Ensuite, leWorkBook.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.
Spécifiez ensuite un nom de fichier de sortie pour le fichier CSV converti. Dans ce cas, nous utilisons le nom "sample.csv"
Si la conversion est réussie, un message s'affiche pour indiquer que la conversion est terminée. En cas d'erreur, l'exception est détectée et un message d'erreur est affiché.
Test de l'application
Maintenant que l'application Blazor est terminée, il est temps de la tester! Appuyez sur F5 pour exécuter votre application dans Visual Studio. Une fois l'application lancée, un bouton de téléchargement de fichier doit apparaître sur la page.
Lancer 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.
Sélectionner un fichier Excel
Après avoir sélectionné un fichier, l'application lira le fichier, le convertira au format CSV à l'aide d'IronXL et enregistrera le fichier converti sous le nom de fichier de sortie spécifié. Vous devriez voir un message indiquant l'état de la conversion, ainsi que le nom du fichier d'origine.
Statut de conversion
Félicitations! Vous avez réussi à construire une application Blazor qui peut exporter des fichiers Excel au format CSV en utilisant IronXL. La capture d'écran suivante montre la sortie du programme ci-dessus.
Le fichier Excel de sortie
Conclusion
Ce tutoriel a démontré comment construire une application Blazor qui peut exporter des fichiers Excel au format CSV en utilisant IronXL. Nous avons montré comment créer un composant de téléchargement de fichiers, gérer les téléchargements de fichiers et convertir des fichiers Excel au format CSV en utilisant les puissantes fonctionnalités d'IronXL.
En incorporant IronXL dans vos applications Blazor, vous pouvez facilement traiter une variété de tâches liées à Excel, telles que l'importation, la manipulation et l'exportation de données. Cela ouvre un large éventail de possibilités pour vos projets et vous aide à offrir une expérience plus riche à vos utilisateurs. Vous pouvezconvertir CSV en Excel dans Blazor en utilisant la bibliothèque IronXL.
IronXL offre uneessai gratuitvous pouvez ainsi tester ses caractéristiques et ses capacités avant de vous engager dans un achat. Après la période d'essai, les licences pour IronXL commencent à $749.
Avant de devenir ingénieur logiciel, Kannapat a obtenu un doctorat en ressources environnementales à l'université d'Hokkaido au Japon. Tout en poursuivant ses études, Kannapat est également devenu membre du Vehicle Robotics Laboratory, qui fait partie du Department of Bioproduction Engineering (département d'ingénierie de la bioproduction). En 2022, il a mis à profit ses compétences en C# pour rejoindre l'équipe d'ingénieurs d'Iron Software, où il se concentre sur IronPDF. Kannapat apprécie son travail car il apprend directement auprès du développeur qui écrit la majeure partie du code utilisé dans IronPDF. Outre l'apprentissage par les pairs, Kannapat apprécie l'aspect social du travail chez Iron Software. Lorsqu'il n'écrit pas de code ou de documentation, Kannapat peut généralement être trouvé en train de jouer sur sa PS5 ou de revoir The Last of Us.
< PRÉCÉDENT Comment convertir Excel en Datagridview en C#
SUIVANT > Comment convertir Excel en tableau de données en C#
Des millions d'ingénieurs dans le monde entier lui font confiance
Réservez une démo en direct gratuite
Réservez une démonstration personnelle de 30 minutes.
Pas de contrat, pas de détails de carte, pas d'engagements.
Voici ce à quoi vous pouvez vous attendre :
Une démonstration en direct de notre produit et de ses principales fonctionnalités
Obtenez des recommandations de fonctionnalités spécifiques au projet
Toutes vos questions trouvent réponse pour vous assurer de disposer de toutes les informations dont vous avez besoin. (Aucune obligation de votre part.)
CHOISIR L'HEURE
VOS INFORMATIONS
Réservez votre gratuit Démonstration en direct
Fiable par plus de 2 millions d'ingénieurs dans le monde entier