
Como exportar para CSV no Blazor
Hoje, vamos nos aprofundar em como usar Blazor e IronXL para converter um arquivo Excel para o formato CSV. Ao final deste tutorial, você será capaz de criar um aplicativo Blazor básico que exporta dados do Excel em vários formatos, incluindo CSV.
Introdução ao IronXL
IronXL é uma poderosa biblioteca .NET para Excel projetada para trabalhar com arquivos Excel em uma ampla gama de formatos, incluindo XLS, XLSX, XLSM, XLTX e CSV. Permite que os desenvolvedores leiam, escrevam e manipulem dados do Excel programaticamente sem a necessidade do Microsoft Office ou Interop do Excel.
Com o IronXL, você pode criar, carregar e salvar workbooks Excel, além de ler e escrever dados em células ou intervalos individuais. Também suporta recursos avançados como formatação, fórmulas, gráficos e tabelas dinâmicas. IronXL é compatível com várias versões do .NET Framework e pode ser usado com linguagens populares como C# e VB.NET.
Passos para Converter Arquivo Excel para CSV
Configurando Seu Projeto Blazor
Para começar, você precisará criar um novo projeto Blazor Server. Abra o Visual Studio, crie um novo projeto e selecione o template "Blazor Server App". Nomeie seu projeto e clique em "Criar".
Uma vez que seu projeto é criado, abra a pasta Pages e localize o arquivo Index.razor. É aqui que os componentes Blazor são adicionados e codificados para lidar com uploads e conversões de arquivos.
Instalando IronXL
Antes de começar a escrever código, é necessário instalar a biblioteca IronXL. Abra o Console do Gerenciador de Pacotes no Visual Studio e execute o seguinte comando:
Este comando irá instalar a biblioteca IronXL em seu projeto Blazor. Agora você está pronto para começar a escrever código!
Criando o Componente de Upload de Arquivo
Primeiro, crie um componente básico de upload de arquivo que permite aos usuários fazer upload de um arquivo Excel existente. Em seguida, o componente InputFile é adicionado do namespace Microsoft.AspNetCore.Components.Forms. Adicione o seguinte código ao seu arquivo Index.razor, abaixo da linha "@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>
Este código configura o componente de upload de arquivo, completo com um botão e uma área de mensagem para exibir o status da conversão do arquivo. O atributo accept no componente InputFile especifica os formatos de arquivo aceitos.
Escrevendo o Código de Conversão de Arquivo
Agora, vamos escrever o código que lida com o upload e a conversão do arquivo. Uma combinação de IronXL, Blazor e C# será usada para completar esta tarefa. Você pode usar o IronXL para converter um CSV em um arquivo Excel.
Adicione o seguinte código ao seu arquivo Index.razor, abaixo do elemento div que você adicionou anteriormente.
@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}";
}
}
}
Este código define um método privado chamado OnInputFileChange, que será acionado quando uma planilha do Excel for carregada usando o componente InputFile; O Excel pode estar no formato XLS ou XLSX. O código lê o arquivo Excel básico carregado, carrega-o em um objeto WorkBook, e então salva o WorkBook como um arquivo CSV. O status da conversão é exibido na área de mensagem da página.
Análise do código
Primeiro, veja o código completo:
@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}";
}
}
}
Vamos detalhar o código ainda mais:
- Quando um arquivo é carregado, o método
OnInputFileChangeé acionado, e um objetoInputFileChangeEventArgsé passado para ele. Este objeto contém informações sobre o arquivo carregado, como seu nome e tamanho. - Armazene o nome original do arquivo em uma variável chamada
originalFileNamepara exibi-lo na página. - Dentro de um bloco try-catch, crie um novo objeto
MemoryStreampara ler o conteúdo do arquivo carregado. A instrução using garante que o stream de memória seja descartado corretamente assim que não for mais necessário. - Use a palavra-chave
awaitpara copiar assincronamente o conteúdo do arquivo carregado no fluxo de memória. Isso garante que este aplicativo permaneça responsivo enquanto lê o arquivo. - A seguir, o método
WorkBook.Loadé usado para carregar o conteúdo do fluxo de memória em um objetoWorkBook. Este objeto representa todo o workbook Excel, incluindo suas planilhas, células e dados. - Em seguida, especifique um nome de arquivo de saída para o arquivo CSV convertido. Neste caso, estamos usando o nome "sample.csv".
- O método
SaveAsCsvdo objetoWorkBooké então usado para salvar o workbook como um arquivo CSV com o nome de arquivo de saída especificado. - Se a conversão for bem-sucedida, uma mensagem é exibida para indicar que a conversão foi concluída. Se ocorrer um erro, capture a exceção e exiba uma mensagem de erro.
Testando o aplicativo
Agora que o aplicativo Blazor está completo, é hora de testá-lo! Pressione F5 para executar seu aplicativo no Visual Studio. Assim que o aplicativo estiver em execução, você deverá ver um botão de upload de arquivo na página.
Execute o aplicativo Blazor
Clique no botão e selecione um arquivo Excel para carregar. Os formatos de arquivo aceitos estão listados no atributo accept do componente InputFile.
Selecione um arquivo Excel
Depois de selecionar um arquivo, o aplicativo lerá o arquivo, converterá para um formato CSV usando o IronXL e salvará o arquivo convertido com o nome de arquivo de saída especificado. Você deve ver uma mensagem indicando o status da conversão, bem como o nome do arquivo original.
Status da conversão
Parabéns! Você criou com sucesso um aplicativo Blazor que pode exportar arquivos Excel para o formato CSV usando o IronXL. A captura de tela a seguir mostra a saída do programa acima.
O arquivo Excel de saída
Conclusão
Este tutorial demonstrou como construir um aplicativo Blazor que pode exportar arquivos Excel para o formato CSV usando o IronXL. Demonstramos como criar um componente de upload de arquivo, lidar com uploads de arquivo e converter arquivos Excel para o formato CSV usando os poderosos recursos do IronXL.
Ao incorporar o IronXL em seus aplicativos Blazor, você pode lidar facilmente com uma variedade de tarefas relacionadas ao Excel, como importar, manipular e exportar dados. Isso abre uma ampla gama de possibilidades para seus projetos e ajuda a proporcionar uma experiência mais rica aos seus usuários. Você pode converter CSV para Excel no Blazor usando a biblioteca IronXL.
O IronXL oferece uma versão de avaliação gratuita, permitindo que você teste suas funcionalidades e capacidades antes de se comprometer com uma compra. Após o período de avaliação, as licenças para IronXL começam a partir de $999.

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais bem estruturados e visualmente atraentes.
Artigos relacionados



