
Como visualizar o Excel no ASP.NET
Este tutorial abrangente irá demonstrar como construir um visualizador de Excel usando ASP.NET MVC e IronXL. Este visualizador permitirá que os usuários exibam, editem e naveguem por arquivos Excel diretamente de sua página web.
O que é IronXL?
IronXL é uma biblioteca poderosa .NET que fornece uma infinidade de funcionalidades relacionadas a operações Excel. Oferece uma API simplificada que permite aos desenvolvedores .NET escrever, manipular e ler documentos Excel em vários formatos de arquivo, incluindo XLS, XLSX, CSV e mais.
Com IronXL, você pode ler arquivos Excel, extrair dados, adicionar ou editar planilhas, criar ou modificar linhas e colunas, aplicar fórmulas, salvar alterações e muito mais. Todas essas operações podem ser realizadas sem a necessidade do Microsoft Excel estar instalado em sua máquina.
IronXL suporta imagens, estilos, formatação condicional, e outros recursos complexos do Excel, tornando-o uma solução abrangente para operações .NET com Excel. É perfeito para lidar com requisitos de fonte de dados e planilhas para suas aplicações ASP.NET MVC. A biblioteca IronXL será usada para visualizar arquivos Excel em Aplicações Web ASP.NET.
Pré-requisitos
- Compreensão básica de ASP.NET MVC
- Visual Studio instalado em sua máquina
- Biblioteca IronXL instalada. Você pode encontrar o guia de instalação na documentação oficial.
Começando
Primeiro, vamos criar um novo projeto ASP.NET MVC no Visual Studio.
-
Abra o Visual Studio.
-
Clique em Arquivo > Novo > Projeto.
-
Na janela de novo projeto, escolha o template Aplicação Web ASP.NET (.NET Framework).
Criar uma nova Aplicação Web ASP.NET no Visual Studio -
Nomeie seu projeto ExcelViewer, selecione o local do projeto e clique no botão Criar.
Configure seu projeto
Este artigo se concentrará em implementar a funcionalidade de visualizador de Excel nesta aplicação ASP.NET MVC.
Adicionando IronXL ao Seu Projeto
Para lidar com formatos de arquivo Excel (como .xls, .xlsx e .csv), IronXL oferece recursos abrangentes para carregar documentos Excel, ler, escrever e até modificar dados Excel. Ele suporta fórmulas, imagens, formatação e muito mais.
-
Clique com o botão direito do mouse no seu projeto no Solution Explorer, e navegue até Gerenciar Pacotes NuGet.
-
No Gerenciador de Pacotes NuGet, procure por IronXL.Excel.
-
Clique em Instalar para adicioná-lo ao seu projeto.
Pesquisar e instalar o pacote IronXL na interface do Gerenciador de Pacotes NuGet
Você também pode instalar o IronXL usando o Console do Gerenciador de Pacotes com o seguinte comando:
Instalar o pacote IronXL do Console do Gerenciador de Pacotes
Agora que o IronXL está instalado, vamos avançar para o próximo passo.
Construindo Modelos
ExcelModel
O primeiro passo é criar um modelo para os dados do Excel. A classe ExcelModel representará uma única folha de Excel e conterá o nome da folha e os dados presentes na folha de Excel.
namespace Excel_File_Viewer_IronXl.Models
{
public class ExcelModel
{
public string SheetName { get; set; }
// Data is a list of string arrays, each array represents a row in the sheet.
public List<string[]> Data { get; set; }
}
}
O ExcelModel é definido com duas propriedades, SheetName e Data. SheetName é uma string simples para armazenar o nome de cada folha de Excel. Data é uma Lista de arrays de strings para armazenar os dados de cada linha na folha de Excel.
ExcelViewModel
Em seguida, vamos criar ExcelViewModel. Este modelo é um wrapper que contém um arquivo, uma mensagem e uma lista de ExcelModel que representa dados de todas as folhas no arquivo.
using Microsoft.AspNetCore.Http;
using System.Collections.Generic;
namespace Excel_File_Viewer_IronXl.Models
{
public class ExcelViewModel
{
public IFormFile File { get; set; } // For uploading Excel file
public string Message { get; set; } // Message for storing success/error messages
public List<ExcelModel> ExcelData { get; set; } // List to store data from all sheets
}
}Imports Microsoft.AspNetCore.Http
Imports System.Collections.Generic
Namespace Excel_File_Viewer_IronXl.Models
Public Class ExcelViewModel
Public Property File As IFormFile ' For uploading Excel file
Public Property Message As String ' Message for storing success/error messages
Public Property ExcelData As List(Of ExcelModel) ' List to store data from all sheets
End Class
End NamespaceEsta classe será usada como o modelo de visão. Ele tem uma propriedade IFormFile para o envio de arquivos, uma string Message para exibir mensagens, e um List<ExcelModel> para armazenar os dados do Excel recuperados.
5. Criar ExcelController para carregar arquivos Excel para extração de dados
Em seguida, crie um novo ExcelController. É aqui que a mágica acontece! Os arquivos Excel são carregados usando a função WorkBook.Load do IronXL, percorra as planilhas, extraia os dados e adicione-os ao ExcelViewModel.
using Excel_File_Viewer_IronXl.Models;
using IronXL;
using System.Collections.Generic;
using System.Web.Mvc;
using System;
using System.Linq;
public class ExcelController : Controller
{
// GET: Excel
public ActionResult Index()
{
var model = new ExcelViewModel();
// Define the file path for the Excel file
string filePath = Server.MapPath("~/App_Data/Test.xlsx");
// List to store data for each sheet
List<ExcelModel> data = new List<ExcelModel>();
try
{
// Load workbook directly from a file path
var workbook = WorkBook.Load(filePath);
// Loop through all worksheets in the workbook
foreach (var worksheet in workbook.WorkSheets)
{
// Add each worksheet's name and data to the data list
data.Add(new ExcelModel
{
SheetName = worksheet.Name,
Data = worksheet.Rows.Select(r => r.ToArray().Select(c => c.Value.ToString()).ToArray()).ToList()
});
}
model.ExcelData = data;
model.Message = "File processed successfully!";
}
catch (Exception ex)
{
model.Message = $"Error occurred while processing file: {ex.Message}";
}
return View(model);
}
}
Aqui, inicialize um ExcelViewModel e então carregue o WorkBook usando o IronXL, percorra cada WorkSheet, e para cada WorkSheet, criamos um ExcelModel com o nome e os dados da planilha. O ExcelModel é então adicionado à lista ExcelData no ExcelViewModel.
Os dados do seguinte arquivo Excel serão carregados e exibidos:
O arquivo Excel de exemplo
6. Criar a Visualização
No seu diretório Views/Excel, crie um novo arquivo HTML Index.cshtml para exibir os dados do Excel. Em seguida, use o nav-tabs do Bootstrap para representar cada folha no arquivo Excel. Cada folha será uma aba separada, e o conteúdo da aba será os dados da folha.
@model Excel_File_Viewer_IronXl.Models.ExcelViewModel
@{
ViewBag.Title = "Index";
}
<h2>Excel File Viewer</h2>
@if (Model.ExcelData != null)
{
<ul class="nav nav-tabs" id="myTab" role="tablist">
@for (int i = 0; i < Model.ExcelData.Count; i++)
{
<li class="nav-item">
<a class="nav-link @(i == 0 ? "active" : "")" id="tab-@i" data-toggle="tab" href="#content-@i" role="tab" aria-controls="content-@i" aria-selected="@(i == 0)">
@Model.ExcelData[i].SheetName
</a>
</li>
}
</ul>
<div class="tab-content" id="myTabContent">
@for (int i = 0; i < Model.ExcelData.Count; i++)
{
<div class="tab-pane fade @(i == 0 ? "show active" : "")" id="content-@i" role="tabpanel" aria-labelledby="tab-@i">
<table class="table table-bordered">
@foreach (var row in Model.ExcelData[i].Data)
{
<tr>
@foreach (var cell in row)
{
<td>@cell</td>
}
</tr>
}
</table>
</div>
}
</div>
}netNeste exemplo de código, nav nav-tabs irá gerar uma lista de abas, cada uma representando uma folha do arquivo Excel. O conteúdo correspondente da aba irá exibir os dados da respectiva folha em formato de tabela. Fazendo algumas alterações, um botão de navegação é adicionado para selecionar o arquivo Excel manualmente.
Executando o Programa
Depois de seguir todos os passos e configurar o projeto corretamente, é hora de executá-lo. Você deve ver uma página da web com guias nomeadas de acordo com os nomes das planilhas no arquivo Excel. Clicar em uma guia exibirá os dados da respectiva planilha em formato de tabela.
O Visualizador de Excel
Conclusão
Você acabou de criar um visualizador de Excel ASP.NET usando o IronXL! Esta poderosa biblioteca permite que os usuários trabalhem com arquivos Excel de uma maneira mais eficiente e gerenciável. Com a ajuda do IronXL, lidar com arquivos Excel nunca foi tão fácil no ambiente .NET.
IronXL oferece uma avaliação gratuita, permitindo que você explore e compreenda sua vasta funcionalidade sem nenhum custo inicial. Após testar e verificar que é a solução perfeita para suas necessidades, a licença começa 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



