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

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.

  1. Abra o Visual Studio.
  2. Clique em Arquivo > Novo > Projeto.
  3. Na janela de novo projeto, escolha o template Aplicação Web ASP.NET (.NET Framework).

Como visualizar Excel em ASP.NET, Figura 1: Crie um novo aplicativo Web ASP.NET no Visual Studio Criar uma nova Aplicação Web ASP.NET no Visual Studio

  1. Nomeie seu projeto ExcelViewer, selecione o local do projeto e clique no botão Criar.

Como visualizar Excel em ASP.NET, Figura 2: Configure seu projeto 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.

  1. Clique com o botão direito do mouse no seu projeto no Solution Explorer, e navegue até Gerenciar Pacotes NuGet.
  2. No Gerenciador de Pacotes NuGet, procure por IronXl.Excel.
  3. Clique em Instalar para adicioná-lo ao seu projeto.

Como visualizar Excel em ASP.NET, Figura 3: 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

Você também pode instalar o IronXL usando o Console do Gerenciador de Pacotes com o seguinte comando:

Install-Package IronXl.Excel

Como visualizar Excel em ASP.NET, Figura 4: Instale o pacote IronXL a partir do Console do Gerenciador de Pacotes 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 planilha do Excel e conterá o nome da planilha e os dados presentes nela.

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; }
    }
}
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; }
    }
}
$vbLabelText   $csharpLabel

O ExcelModel é definido com duas propriedades, SheetName e Data. SheetName é uma string simples para armazenar o nome de cada planilha do Excel. Data é uma Lista de arrays de strings para armazenar os dados de cada linha na planilha do Excel.

ExcelViewModel

Em seguida, vamos criar ExcelViewModel. Este modelo é um invólucro que contém um arquivo, uma mensagem e uma lista de ExcelModel que representa dados de todas as planilhas 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
    }
}
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
    }
}
$vbLabelText   $csharpLabel

Esta classe será usada como o modelo de visão. Ele possui uma propriedade IFormFile para upload de arquivo, uma string Message para exibir quaisquer mensagens, e um List<ExcelModel> para armazenar os dados do Excel recuperados.

5. Crie ExcelController para carregar arquivos Excel para extração de dados

Então, crie um novo ExcelController. É aqui que a mágica acontece! Os arquivos Excel são carregados usando a função WorkBook.Load do IronXL, iteram pelas planilhas, extraem os dados e os adicionam 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);
    }
}
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);
    }
}
$vbLabelText   $csharpLabel

Aqui, inicialize um ExcelViewModel e depois carregue o WorkBook usando o IronXL, itere através de 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:

Como visualizar Excel em ASP.NET, Figura 5: O arquivo Excel de exemplo 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 planilha do arquivo Excel. Cada planilha será uma aba separada, e o conteúdo da aba será os dados da planilha.

@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>
}
@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>
}
$vbLabelText   $csharpLabel

Neste exemplo de código, nav nav-tabs gerará uma lista de abas, cada uma representando uma planilha do arquivo Excel. O conteúdo da aba correspondente exibirá os dados da respectiva planilha 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.

Como visualizar Excel em ASP.NET, Figura 6: O Visualizador de Excel 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 fornece uma versão de teste gratuita, permitindo que você explore e entenda sua vasta funcionalidade sem nenhum custo inicial. Uma vez testado e encontrado como a solução perfeita para suas necessidades, a licença começa a partir de $799.

Perguntas frequentes

Como posso criar um visualizador de Excel usando ASP.NET MVC?

Você pode criar um visualizador de Excel usando ASP.NET MVC configurando um novo projeto no Visual Studio e adicionando a biblioteca IronXL através do Gerenciador de Pacotes NuGet. Isso permite carregar, exibir e manipular arquivos do Excel diretamente em sua aplicação web.

Quais são os passos para configurar um projeto ASP.NET MVC para lidar com arquivos Excel?

Para configurar um projeto ASP.NET MVC para lidar com arquivos Excel, abra o Visual Studio, crie um novo projeto de Aplicativo Web ASP.NET e instale a biblioteca IronXL via NuGet. Em seguida, implemente modelos como ExcelModel e ExcelViewModel para gerenciar dados do Excel e use o ExcelController para carregar e processar arquivos Excel.

Posso exibir várias planilhas do Excel em uma aplicação ASP.NET?

Sim, você pode exibir várias planilhas do Excel em um aplicativo ASP.NET usando o IronXL para carregar o arquivo do Excel e, em seguida, utilizando nav-tabs do Bootstrap para criar abas separadas para cada planilha, exibindo os dados em formato de tabela.

Como faço para carregar e processar um arquivo Excel em ASP.NET usando uma biblioteca .NET?

Em ASP.NET, você pode carregar e processar um arquivo Excel usando o método WorkBook.Load do IronXL. Esse método permite ler o arquivo Excel, iterar por suas planilhas e extrair os dados para exibição ou manipulação posterior.

Quais são as vantagens de usar o IronXL para operações do Excel em .NET?

O IronXL oferece diversas vantagens para operações com o Excel em .NET, incluindo suporte a vários formatos de arquivo do Excel, a capacidade de manipular recursos complexos do Excel, como imagens e formatação condicional, e o benefício de não exigir a instalação do Microsoft Excel no servidor.

Como posso solucionar problemas comuns ao criar um visualizador de Excel em ASP.NET?

Problemas comuns na criação de um visualizador de Excel em ASP.NET podem ser resolvidos garantindo que a biblioteca IronXL esteja instalada corretamente via NuGet, verificando se todos os modelos e controladores necessários estão implementados adequadamente e se os arquivos do Excel estão em um formato compatível.

É possível editar arquivos do Excel diretamente de uma página web ASP.NET?

Sim, é possível editar arquivos do Excel diretamente de uma página web ASP.NET usando o IronXL. A biblioteca permite carregar arquivos do Excel em sua aplicação web, modificar dados e salvar as alterações de volta no arquivo de forma integrada.

O IronXL suporta leitura e gravação de arquivos Excel?

Sim, o IronXL suporta tanto a leitura quanto a gravação de arquivos Excel. Você pode usá-lo para ler dados de documentos Excel existentes e gravar novos dados ou alterações em arquivos Excel em vários formatos, incluindo XLS, XLSX e CSV.

Que modelos devem ser criados para gerenciar dados do Excel em uma aplicação ASP.NET MVC?

Em uma aplicação ASP.NET MVC, você deve criar modelos como ExcelModel para representar planilhas individuais do Excel e ExcelViewModel para gerenciar uma coleção de planilhas e lidar com o upload de arquivos e o envio de mensagens.

Como posso testar as funcionalidades do IronXL antes de comprar?

Você pode testar os recursos do IronXL baixando a versão de avaliação gratuita disponível no site deles. Essa versão de avaliação permite explorar as capacidades da biblioteca no manuseio de arquivos Excel em seus aplicativos .NET sem nenhum custo inicial.

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