USANDO O IRONXL

Como exportar para CSV no Blazor

Curtis Chau
Curtis Chau
Updated: 21 de abril de 2026

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:

PM > Install-Package IronXL.Excel

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>
Razor

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}";
        }
    }
}
Razor

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}";
        }
    }
}
Razor

Vamos detalhar o código ainda mais:

  1. Quando um arquivo é carregado, o método OnInputFileChange é acionado, e um objeto InputFileChangeEventArgs é passado para ele. Este objeto contém informações sobre o arquivo carregado, como seu nome e tamanho.
  2. Armazene o nome original do arquivo em uma variável chamada originalFileName para exibi-lo na página.
  3. Dentro de um bloco try-catch, crie um novo objeto MemoryStream para 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.
  4. Use a palavra-chave await para 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.
  5. A seguir, o método WorkBook.Load é usado para carregar o conteúdo do fluxo de memória em um objeto WorkBook. Este objeto representa todo o workbook Excel, incluindo suas planilhas, células e dados.
  6. Em seguida, especifique um nome de arquivo de saída para o arquivo CSV convertido. Neste caso, estamos usando o nome "sample.csv".
  7. O método SaveAsCsv do objeto WorkBook é então usado para salvar o workbook como um arquivo CSV com o nome de arquivo de saída especificado.
  8. 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.

Como Exportar para CSV no Blazor, Figura 1: Execute a aplicação Blazor 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.

Como Exportar para CSV no Blazor, Figura 2: Selecione um arquivo Excel 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.

Como Exportar para CSV no Blazor, Figura 3: Status da conversão 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.

Como Exportar para CSV no Blazor, Figura 4: O arquivo Excel de saída 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.

Leia mais

Artigos relacionados