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

Como abrir um arquivo do Excel no ASP.NET Core

Este tutorial demonstrará como abrir um arquivo Excel usando o IronXL em uma aplicação ASP.NET Core utilizando a biblioteca IronXL. Ele cobrirá os passos básicos para ler arquivos Excel, exibir dados deles e salvar dados modificados de volta no arquivo.

O que é IronXL?

IronXL é uma biblioteca .NET Excel que oferece funcionalidades para trabalhar com documentos Excel sem exigir dependências do Microsoft Excel ou do Office Interop. Ela suporta tanto o .NET Framework quanto o .NET Core, fornecendo capacidades para escrever, manipular e ler arquivos Excel com apenas algumas linhas de código. Para um tutorial detalhado sobre leitura de arquivos Excel, consulte este tutorial de Excel.

A biblioteca IronXL pode ler e escrever documentos Excel, extrair dados deles, manipular os dados e até mesmo criar novos arquivos Excel do zero. IronXL não suporta apenas o formato .XLS, mas também é compatível com .XLSX, que é um formato de arquivo baseado em XML desenvolvido pela Microsoft para representar planilhas.

Pré-requisitos

Antes de mergulhar no código, certifique-se de ter o seguinte:

  1. .NET Core 3.1 ou superior instalado.
  2. Um IDE adequado para desenvolvimento .NET (Microsoft Visual Studio é recomendado).
  3. Compreensão básica de ASP.NET Core e Razor Pages.

Criar um novo Projeto .NET Core

  1. Abra o Microsoft Visual Studio e selecione "Criar um novo projeto".
  2. Escolha "Aplicativo Web ASP.NET Core" na lista de modelos de projeto e clique em "Avançar".
  3. Forneça um nome para o seu projeto, por exemplo, "Open_ExcelFile.NET_Core", selecione um local e clique em "Avançar".
  4. Escolha ".NET Core" como o framework de destino e "ASP.NET Core 3.1 ou superior" como a versão. Na seção "Modelo de projeto", selecione "Aplicativo Web" e clique em "Criar".

Instalar Pacote IronXL

O próximo passo é instalar o pacote IronXL neste projeto recém-criado:

  1. Clique com o botão direito no projeto no Solution Explorer e selecione "Gerenciar Pacotes NuGet".
  2. Na guia "Navegar", procure por "IronXL" e clique em "Instalar" para o pacote IronXl.Excel.

Como abrir um arquivo Excel no ASP .NET Core, Figura 1: Pesquise e instale o pacote IronXL na Interface do Gerenciador de Pacotes NuGet Pesquisar e instalar o pacote IronXL na interface do Gerenciador de Pacotes NuGet

  1. Aguarde a instalação do pacote.

Seu projeto ASP.NET Core está agora configurado, e a biblioteca IronXL está instalada e pronta para uso.

Criar uma Página Razor

Agora, vamos criar uma Página Razor para escrever o código para abrir o arquivo Excel.

  1. Clique com o botão direito no diretório "Pages" no Explorador de Soluções e selecione "Adicionar" > "Página Razor".
  2. Digite "ExcelOpener" como o nome da Página e clique em "Adicionar".

Como abrir um arquivo Excel no ASP .NET Core, Figura 2: Crie uma nova Página Razor Criar uma nova Página Razor

Isso criará dois arquivos: ExcelOpener.cshtml e ExcelOpener.cshtml.cs.

O arquivo ExcelOpener.cshtml contém o markup HTML para a página, e o arquivo ExcelOpener.cshtml.cs contém o código C# para a página.

Lendo Arquivos Excel

Vamos mergulhar no código. A classe fornecida ExcelOpenerModel é um Modelo de Página Razor. Essa classe possui uma propriedade Data, que será usada para armazenar os dados lidos de um arquivo Excel.

public List<List<string>> Data { get; set; }

public ExcelOpenerModel()
{
    Data = new List<List<string>>();
}
public List<List<string>> Data { get; set; }

public ExcelOpenerModel()
{
    Data = new List<List<string>>();
}
$vbLabelText   $csharpLabel

No método OnGet, o IronXL é utilizado para carregar um arquivo Excel e ler os dados da planilha padrão (a primeira folha no livro). Cada linha é representada como uma List<string>, e todas essas listas são então adicionadas à propriedade Data.

public void OnGet()
{
    try
    {
        Data = new List<List<string>>();
        // Load your Excel file
        var workbook = WorkBook.Load(@"C:\Users\Administrator\Documents\Loan.xlsx");

        // Select your Worksheet
        WorkSheet sheet = workbook.DefaultWorkSheet;

        for (int i = 0; i < sheet.RowCount; i++)
        {
            var row = new List<string>();
            for (int j = 0; j < sheet.ColumnCount; j++)
            {
                row.Add(sheet.GetCellAt(i, j).Value.ToString());
            }
            Data.Add(row);
        }
    }
    catch (Exception ex)
    {
        // Handle exceptions here
        Console.WriteLine(ex.Message);
    }
}
public void OnGet()
{
    try
    {
        Data = new List<List<string>>();
        // Load your Excel file
        var workbook = WorkBook.Load(@"C:\Users\Administrator\Documents\Loan.xlsx");

        // Select your Worksheet
        WorkSheet sheet = workbook.DefaultWorkSheet;

        for (int i = 0; i < sheet.RowCount; i++)
        {
            var row = new List<string>();
            for (int j = 0; j < sheet.ColumnCount; j++)
            {
                row.Add(sheet.GetCellAt(i, j).Value.ToString());
            }
            Data.Add(row);
        }
    }
    catch (Exception ex)
    {
        // Handle exceptions here
        Console.WriteLine(ex.Message);
    }
}
$vbLabelText   $csharpLabel

Métodos principais explicados

  • WorkBook.Load(filepath): Este método carrega o documento Excel a partir do caminho de arquivo especificado. Ele ajuda a carregar e ler a planilha Excel.
  • workbook.DefaultWorkSheet: Esta propriedade obtém a planilha padrão (primeira) do Excel na planilha Excel.
  • sheet.GetCellAt(i, j).Value.ToString(): Isso obtém a célula nos índices de linha e coluna especificados e converte seu valor em uma string. Este é um exemplo de um método de índice que pode acessar células ou intervalos específicos dentro de um arquivo Excel com base nos índices de linha e coluna.

Explicação Curta

No arquivo ExcelOpener.cshtml.cs, uma classe chamada ExcelOpenerModel representa o modelo de Página Razor. Ela contém uma propriedade chamada Data do tipo List<List<string>>, que conterá os dados do arquivo Excel.

O método OnGet é chamado quando a página é requisitada e é responsável por ler os dados do arquivo Excel. Ele usa o IronXL para carregar o arquivo Excel, seleciona a planilha padrão e itera sobre as linhas e colunas para preencher a propriedade Data.

Escrevendo Arquivos Excel

O método OnPost na classe ExcelOpenerModel é usado para salvar modificações no arquivo Excel. Primeiro, carrega o arquivo Excel e recupera a planilha padrão. Em seguida, escreve os valores de Data nas células da planilha e salva o livro em um novo arquivo.

public void OnPost()
{
    try
    {
        // Load your Excel file
        var workbook = WorkBook.Load(@"C:\Users\Administrator\Documents\Loan.xlsx");

        // Select your Worksheet
        var sheet = workbook.DefaultWorkSheet;

        for (int i = 0; i < Data.Count; i++)
        {
            for (int j = 0; j < Data[i].Count; j++)
            {
                sheet.SetCellValue(i, j, Data[i][j]);
            }
        }

        // Save the Excel file
        var filename = @"C:\ModifiedData.xlsx";
        workbook.SaveAs(filename);
    }
    catch (Exception ex)
    {
        // Handle exceptions here
        Console.WriteLine(ex.Message);
    }
}
public void OnPost()
{
    try
    {
        // Load your Excel file
        var workbook = WorkBook.Load(@"C:\Users\Administrator\Documents\Loan.xlsx");

        // Select your Worksheet
        var sheet = workbook.DefaultWorkSheet;

        for (int i = 0; i < Data.Count; i++)
        {
            for (int j = 0; j < Data[i].Count; j++)
            {
                sheet.SetCellValue(i, j, Data[i][j]);
            }
        }

        // Save the Excel file
        var filename = @"C:\ModifiedData.xlsx";
        workbook.SaveAs(filename);
    }
    catch (Exception ex)
    {
        // Handle exceptions here
        Console.WriteLine(ex.Message);
    }
}
$vbLabelText   $csharpLabel

Métodos Chave Explicados

  • sheet.SetCellValue(i, j, Data[i][j]): Este método define o valor da célula nos índices de linha e coluna especificados.
  • workbook.SaveAs(filepath): Este método salva o livro Excel no caminho de arquivo especificado.

Explicação Curta

O método OnPost é chamado quando o formulário é enviado, e ele salva os dados modificados de volta no arquivo Excel. Carrega o arquivo Excel, seleciona a planilha padrão e atualiza os valores das células com base nos dados modificados recebidos do formulário.

Formulário HTML para Edição de Dados Excel

No ExcelOpener.cshtml, um formulário é definido para exibir e editar os dados do arquivo Excel. Cada valor de célula é exibido em um campo de entrada de texto. Depois de editar, clicar no botão "Save" enviará o formulário, acionando o método OnPost e salvando as alterações no arquivo Excel.

@page
@model Open_Excel_File_.NET_Core.Pages.ExcelOpenerModel

<form method="post">
    <table class="table table-bordered table-striped">

        @for (int i = 0; i < Model.Data.Count; i++)
        {
            <tr>
                @for (int j = 0; j < Model.Data[i].Count; j++)
                {
                    <td>
                        <input type="text" class="form-control" name="Data[@i][@j]" value="@Model.Data[i][j]" /> 
                    </td>
                }
            </tr>
        }
    </table>

    <input type="submit" class="btn btn-primary" value="Save" /> 
</form>
@page
@model Open_Excel_File_.NET_Core.Pages.ExcelOpenerModel

<form method="post">
    <table class="table table-bordered table-striped">

        @for (int i = 0; i < Model.Data.Count; i++)
        {
            <tr>
                @for (int j = 0; j < Model.Data[i].Count; j++)
                {
                    <td>
                        <input type="text" class="form-control" name="Data[@i][@j]" value="@Model.Data[i][j]" /> 
                    </td>
                }
            </tr>
        }
    </table>

    <input type="submit" class="btn btn-primary" value="Save" /> 
</form>
HTML

Navegando para a Página

No _Layout.cshtml, um link para a página é adicionado ao menu de navegação. Ao clicar neste link, você navegará para a página de abertura de Excel.

<li class="nav-item">
    <a class="nav-link text-dark" asp-area="" asp-page="/ExcelOpener">ExcelOpener</a>
</li>
<li class="nav-item">
    <a class="nav-link text-dark" asp-area="" asp-page="/ExcelOpener">ExcelOpener</a>
</li>
HTML

Executando a Aplicação e Explicando o Resultado

Construa a aplicação clicando no botão "Build" no Visual Studio ou usando o atalho Ctrl + Shift + B. Execute a aplicação pressionando F5 ou clicando no botão "Iniciar" no Visual Studio.

Uma vez que a aplicação estiver em execução, navegue para a página "ExcelOpener" clicando no link correspondente na barra de navegação. A página exibirá os dados do Excel em formato tabular.

Você pode modificar os dados na tabela e clicar no botão "Salvar" para salvar as alterações de volta no arquivo Excel.

Como abrir um arquivo Excel no ASP .NET Core, Figura 3: Exibir dados do Excel na Aplicação Web Exibir dados de Excel na Aplicação Web

Este tutorial demonstrou como abrir um arquivo Excel usando IronXL em uma aplicação ASP.NET Core. IronXL fornece uma maneira simples e conveniente de ler e manipular arquivos Excel. Você pode explorar a documentação do IronXL para funcionalidades e recursos mais avançados.

IronXL oferece um teste gratuito, permitindo que você avalie suas capacidades. Se achar útil para seus projetos, você pode adquirir uma licença a partir de $799.

Perguntas frequentes

Como posso abrir um arquivo do Excel em uma aplicação ASP.NET Core?

Você pode abrir um arquivo do Excel em uma aplicação ASP.NET Core usando a biblioteca IronXL. Primeiro, instale o pacote IronXL via NuGet e, em seguida, use WorkBook.Load para carregar o arquivo do Excel. Você pode acessar os dados selecionando a planilha e iterando sobre as linhas e colunas.

Quais são as vantagens de usar o IronXL em vez do Office Interop para manipulação de arquivos Excel?

O IronXL permite trabalhar com arquivos do Excel sem a necessidade do Microsoft Excel ou de dependências do Office Interop, sendo ideal para ambientes de servidor onde a instalação do Microsoft Office não é viável. Ele suporta .NET Framework e .NET Core e lida com os formatos .XLS e .XLSX.

Como faço para exibir dados do Excel em um aplicativo web usando Razor Pages?

Para exibir dados do Excel em um aplicativo web, você pode criar uma Razor Page que utiliza o IronXL para carregar e ler os dados do Excel. Use um formulário HTML para renderizar os dados de cada célula em campos de entrada de texto, permitindo que os usuários visualizem e editem os dados na interface web.

O que é necessário para configurar um projeto ASP.NET Core para operações com o Excel?

Para configurar um projeto ASP.NET Core para operações com o Excel, você precisa ter o .NET Core 3.1 ou superior, uma IDE como o Microsoft Visual Studio e um conhecimento básico de ASP.NET Core e Razor Pages. Instale o pacote IronXL do NuGet para começar a trabalhar com arquivos do Excel.

Como posso editar e salvar as alterações em um arquivo do Excel no ASP.NET Core?

Você pode editar e salvar alterações em um arquivo do Excel permitindo que os usuários modifiquem os dados por meio de um formulário HTML em uma Razor Page. Use métodos do IronXL como sheet.SetCellValue para atualizar os dados e workbook.SaveAs para salvar o arquivo do Excel modificado.

Quais são os passos envolvidos na configuração de uma Razor Page para operações com arquivos do Excel?

Configurar uma Razor Page envolve criar uma nova Razor Page em seu projeto ASP.NET Core. Use a Razor Page para carregar dados do Excel com o IronXL, exibi-los em um formulário web e lidar com o envio de formulários para atualizar e salvar as alterações no arquivo Excel.

Como posso solucionar problemas se meu arquivo do Excel não estiver carregando no ASP.NET Core?

Se o seu arquivo Excel não carregar, verifique se o caminho do arquivo está correto e acessível pelo aplicativo. Confirme se o IronXL está instalado corretamente e se o formato do arquivo é compatível. Procure por exceções ou mensagens de erro que possam indicar a causa do problema.

Posso experimentar a biblioteca IronXL antes de comprar?

Sim, o IronXL oferece uma versão de avaliação gratuita que permite avaliar suas funcionalidades. Você pode usar essa versão de avaliação para garantir que atenda às suas necessidades antes de decidir comprar uma licença.

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