USANDO O IRONXL

Como gerar um arquivo do Excel no Razor Pages

Curtis Chau
Curtis Chau
Updated: 28 de junho de 2026

Razor Pages oferece uma abordagem moderna para construir páginas web. Em Razor Pages, o código fonte que renderiza a página web é escrito em C# em vez de ser gerado por uma página do lado do servidor.

Para trabalhar eficientemente com arquivos Excel, a biblioteca IronXL é recomendada em vez de outras, como o pacote NPOI do projeto POI Java (notavelmente usado com arquivos PowerPoint) e Office Interop. IronXL é uma biblioteca rica em recursos, fácil de usar, que não requer Microsoft Office e suporta múltiplas versões .NET.

Este artigo demonstra o uso da biblioteca IronXL C# para gerar e exportar planilhas Excel com dados fictícios e cabeçalhos de linha em Razor Pages.

IronXL: Biblioteca Excel em C#

IronXL é uma biblioteca Excel para C# que oferece métodos e funções para operar em grandes conjuntos de dados usando processamento paralelo para aumentar o poder de computação. É amigável ao usuário, pois não requer a compreensão do funcionamento interno e suporta arquivos tanto XLS quanto XLSX.

IronXL é ideal para importação, exportação, criação de fórmulas Excel e documentos de escritório sem precisar que o Microsoft Office esteja instalado.

Saiba como importar e exportar arquivos Excel em Razor Pages usando IronXL.

Gerar Arquivo Excel em Razor Pages

Para criar planilhas Excel em Razor Pages, comece abrindo o Visual Studio, criando uma Aplicação Web ASP.NET Core e instalando o IronXL.

Pré-requisitos

Configurar para criar arquivos Excel em Razor Pages requer:

  1. Visual Studio (Última Versão)
  2. .NET Framework 6 ou 7
  3. Aplicação Web .NET Core no Visual Studio

Instalar Biblioteca IronXL

Instale o IronXL usando o Console do Gerenciador de Pacotes NuGet. Insira este comando para instalar a biblioteca em uma Aplicação Web .NET Core:

PM > Install-Package IronXL.Excel

Código para Gerar arquivo Excel

Aqui está como escrever o código. Abra "Index.cs" na pasta Pages e adicione o seguinte método:

public FileResult OnPostExport()
{
    // Create a new WorkBook with XLSX format
    WorkBook workBook = new WorkBook(IronXL.ExcelFileFormat.XLSX);
    // Create a new WorkSheet named "data"
    WorkSheet workSheet = workBook.CreateWorkSheet("data");

    // Add headers to the new worksheet
    workSheet["A1"].Value = "Product EN";
    workSheet["B1"].Value = "SKU";
    workSheet["C1"].Value = "Customer";

    // Make header text bold
    workSheet["A1:C1"].Style.Font.Bold = true;

    // Add dummy data to the worksheet
    workSheet["A2"].Value = "Iron Rods";
    workSheet["A3"].Value = "Mobile Phones";
    workSheet["A4"].Value = "Chargers";

    workSheet["B2"].Value = "105";
    workSheet["B3"].Value = "285";
    workSheet["B4"].Value = "301";

    workSheet["C2"].Value = "Adam";
    workSheet["C3"].Value = "Ellen";
    workSheet["C4"].Value = "Tom";

    // Convert the WorkBook to a byte array Stream for download
    return File(workBook.ToStream().ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Grid.xlsx");
}

In this code, a new Excel WorkBook is created and contains one WorkSheet. A planilha é populada com dados de exemplo e o arquivo gerado é respondido ao servidor com:

  • O WorkBook é convertido em um Stream para download como um arquivo.
  • O tipo MIME é definido.
  • Um nome para o download do arquivo é especificado.

Crie um botão para baixar o arquivo Excel

Substitua o código existente em "Index.cshtml" pelo seguinte:

@page
@model IndexModel
@{
    ViewData["Title"] = "Home page";
}

<div class="text-center">
    <h1 class="display-4">IronXL Generate Excel File</h1>
    <p class="m-5">IronXL is an Excel Library for C# that allows developers to read and edit Excel data from XLS and XLSX documents without using Microsoft.Office.Interop.Excel</p>
    <form method="post" asp-page-handler="Export">
        <button class="btn btn-success p-3">Generate Excel File!</button>
    </form>
</div>
HTML

Este HTML cria um formulário com asp-page-handler definido como "Exportar", permitindo que o aplicativo exporte o arquivo Excel para a máquina local quando o usuário clica no botão "Gerar Arquivo Excel!", acionando um download pelo navegador.

Execute o projeto

Execute o projeto e você verá uma tela no navegador. Clique no botão verde para baixar o arquivo Excel.

Como Gerar um Arquivo Excel em Razor Pages, Figura 1: IronXL Gerar Planilhas Excel IronXL Gera Planilhas Excel

Após clicar em "Gerar Arquivo Excel!", o arquivo será baixado.

Como Gerar um Arquivo Excel em Razor Pages, Figura 2: Arquivo Baixado do IronXL Arquivo Baixado IronXL

Abra o Arquivo Excel Gerado

O conteúdo do arquivo Excel gerado corresponde à saída do código com formatação perfeita. A captura de tela do arquivo Excel gerado é exibida abaixo.

Como Gerar um Arquivo Excel em Razor Pages, Figura 3: Arquivo Gerado do IronXL Arquivo Gerado IronXL

IronXL melhor que os Concorrentes

IronXL é uma ferramenta superior para trabalhar com formatos XLS e XLSX sem limitações como NPOI, que é mais lento por ser baseado em Java, enquanto IronXL é C#. Em aplicativos ASP.NET Core que geram grandes/múltiplas planilhas, opte por IronXL ao invés de POI.

IronXL permite criar e editar arquivos Excel sem Microsoft Office. Ao contrário do Microsoft Interop, IronXL não precisa chamar o ActiveX do Microsoft Excel para operações ou exportações de Excel. Ele também permite exportar arquivos CSV para o formato Excel.

IronXL também oferece recursos extensivos para interagir com arquivos Excel, incluindo converter entre formatos populares, inserir funções matemáticas, adicionar gráficos e inserir imagens.

Conclusão

Este artigo demonstra o uso do IronXL para gerar um arquivo Excel em Razor Pages sem a necessidade do ActiveX do Microsoft Excel e facilitando o download de arquivos.

Explore mais tutoriais sobre a criação de arquivos Excel.

IronXL é gratuito para desenvolvimento não comercial. Uma versão de teste gratuita está disponível para testes em produção. Veja os planos de preços para mais detalhes sobre preços e licenciamento.

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.

Leia mais

Artigos relacionados