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:
- .NET Core 3.1 ou superior instalado.
- Um IDE adequado para desenvolvimento .NET (Microsoft Visual Studio é recomendado).
- Compreensão básica de ASP.NET Core e Razor Pages.
Criar um novo Projeto .NET Core
- Abra o Microsoft Visual Studio e selecione "Criar um novo projeto".
- Escolha "Aplicativo Web ASP.NET Core" na lista de modelos de projeto e clique em "Avançar".
- Forneça um nome para o seu projeto, por exemplo, "Open_ExcelFile.NET_Core", selecione um local e clique em "Avançar".
- 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:
- Clique com o botão direito no projeto no Solution Explorer e selecione "Gerenciar Pacotes NuGet".
- Na guia "Navegar", procure por "IronXL" e clique em "Instalar" para o pacote IronXL.Excel.
Pesquisar e instalar o pacote IronXL na interface do Gerenciador de Pacotes NuGet
- 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.
- Clique com o botão direito no diretório "Pages" no Explorador de Soluções e selecione "Adicionar" > "Página Razor".
- Digite "ExcelOpener" como o nome da Página e clique em "Adicionar".
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>>();
}
Public Property Data() As List(Of List(Of String))
'INSTANT VB WARNING: The following constructor is declared outside of its associated class:
'ORIGINAL LINE: public ExcelOpenerModel()
Public Sub New()
Data = New List(Of List(Of String))()
End Sub
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);
}
}
Public Sub OnGet()
Try
Data = New List(Of List(Of String))()
' Load your Excel file
Dim workbook = WorkBook.Load("C:\Users\Administrator\Documents\Loan.xlsx")
' Select your Worksheet
Dim sheet As WorkSheet = workbook.DefaultWorkSheet
For i As Integer = 0 To sheet.RowCount - 1
Dim row = New List(Of String)()
For j As Integer = 0 To sheet.ColumnCount - 1
row.Add(sheet.GetCellAt(i, j).Value.ToString())
Next j
Data.Add(row)
Next i
Catch ex As Exception
' Handle exceptions here
Console.WriteLine(ex.Message)
End Try
End Sub
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);
}
}
Public Sub OnPost()
Try
' Load your Excel file
Dim workbook = WorkBook.Load("C:\Users\Administrator\Documents\Loan.xlsx")
' Select your Worksheet
Dim sheet = workbook.DefaultWorkSheet
For i As Integer = 0 To Data.Count - 1
Dim j As Integer = 0
Do While j < Data(i).Count
sheet.SetCellValue(i, j, Data(i)(j))
j += 1
Loop
Next i
' Save the Excel file
Dim filename = "C:\ModifiedData.xlsx"
workbook.SaveAs(filename)
Catch ex As Exception
' Handle exceptions here
Console.WriteLine(ex.Message)
End Try
End Sub
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>
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>
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.
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.



