Ir para o conteúdo do rodapé
USANDO O IRONXL

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:

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 permita 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 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, em seguida, salva o WorkBook como um arquivo CSV. O status da conversão é exibido na área de mensagens 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:

  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 para o fluxo de memória. Isso garante que este aplicativo permaneça responsivo enquanto lê o arquivo.
  5. Em seguida, 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 a pasta de trabalho 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 o aplicativo 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 em $799.

Perguntas frequentes

Como posso converter um arquivo Excel para o formato CSV em uma aplicação Blazor?

Você pode converter um arquivo Excel para o formato CSV em uma aplicação Blazor usando o IronXL. Primeiro, configure um projeto Blazor Server, instale o IronXL através do Console do Gerenciador de Pacotes e crie um componente de upload de arquivo com o componente `InputFile`. Em seguida, leia o arquivo Excel para um fluxo de memória, carregue-o em um objeto WorkBook usando o IronXL e utilize o método SaveAsCsv para exportar o arquivo como CSV.

Qual a finalidade de usar o IronXL em aplicações Blazor?

O IronXL é usado em aplicações Blazor para manipular dados do Excel sem a necessidade do Microsoft Office ou do Excel Interop. Ele permite que os desenvolvedores leiam, manipulem e exportem dados do Excel programaticamente, possibilitando recursos como importação de dados, formatação e conversão de arquivos do Excel para formatos como CSV.

Posso testar minha aplicação Blazor para converter arquivos Excel em CSV?

Sim, você pode testar seu aplicativo Blazor executando-o no Visual Studio. Use o componente de upload de arquivos para selecionar um arquivo Excel. O aplicativo converterá o arquivo selecionado para CSV usando o IronXL e fornecerá informações sobre o status da conversão.

Quais são as vantagens de usar o IronXL em vez do Excel Interop?

Utilizar o IronXL em vez do Excel Interop oferece diversas vantagens, incluindo a capacidade de manipular arquivos do Excel sem a necessidade de instalar o Microsoft Office, suporte a múltiplos formatos do Excel (XLS, XLSX, CSV) e compatibilidade com aplicativos .NET, melhorando o desempenho e a facilidade de implantação.

Como instalo o IronXL no meu projeto Blazor?

Para instalar o IronXL em seu projeto Blazor, abra o Console do Gerenciador de Pacotes no Visual Studio e execute o comando: Install-Package IronXl.Excel . Isso instala a biblioteca, permitindo que você comece a trabalhar com arquivos do Excel programaticamente.

Quais formatos de arquivo Excel são suportados pelo IronXL para conversão em Blazor?

O IronXL oferece suporte a diversos formatos de arquivo Excel para conversão em Blazor, incluindo .xls, .xlsx, .xlsm, .xltx e .csv, permitindo o manuseio flexível de dados do Excel em seus aplicativos.

Como posso criar um componente de upload de arquivos em uma aplicação Blazor?

Para criar um componente de upload de arquivos em uma aplicação Blazor, utilize o componente `InputFile` do namespace Microsoft.AspNetCore.Components.Forms. Este componente permite que os usuários carreguem arquivos, que podem então ser processados usando o IronXL para tarefas como a conversão de arquivos Excel para CSV.

Existe algum período de teste gratuito disponível para o IronXL?

Sim, o IronXL oferece um período de teste gratuito que permite explorar seus recursos e funcionalidades antes de efetuar a compra. Após o período de teste, você pode escolher entre diversas opções de licenciamento, de acordo com as necessidades do seu projeto.

Jordi Bardia
Engenheiro de Software
Jordi é extremamente proficiente em Python, C# e C++, e quando não está utilizando suas habilidades na Iron Software, dedica-se à programação de jogos. Compartilhando as responsabilidades por testes, desenvolvimento e pesquisa de produtos, Jordi agrega imenso valor à melhoria contínua dos produtos. Essa experiência diversificada o mantém ...
Leia mais

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me