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

Como gerar um arquivo do Excel no Razor Pages

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:

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

Neste código, um novo Excel WorkBook é criado e contém um WorkSheet. A planilha é populada com dados de exemplo e o arquivo gerado é respondido ao servidor com:

  • O WorkBook é convertido para um Stream para download como 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>
@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 clicar no botão "Gerar Arquivo Excel!", acionando um download no 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 Gera 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: IronXL Arquivo Baixado 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: IronXL Arquivo Gerado 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.

Perguntas frequentes

Como posso gerar um arquivo Excel no Razor Pages sem usar o Interop?

É possível gerar um arquivo Excel no Razor Pages sem usar o Interop, utilizando a biblioteca IronXL. Essa biblioteca permite criar e manipular arquivos Excel diretamente em C#, sem a necessidade do Microsoft Office, criando uma WorkBook e adicionando dados a uma WorkSheet.

Quais são os passos envolvidos na instalação do IronXL em um projeto Razor Pages?

Para instalar o IronXL em um projeto Razor Pages, você pode usar o Console do Gerenciador de Pacotes NuGet no Visual Studio. Execute o comando Install-Package IronXl.Excel para adicionar a biblioteca ao seu projeto.

Posso usar o IronXL para exportar dados de um aplicativo Razor Pages?

Sim, o IronXL pode ser usado para exportar dados de um aplicativo Razor Pages. Você pode converter seus dados para o formato Excel e, em seguida, usar o Razor Pages para transmitir esses dados de volta para o cliente como um arquivo para download.

Quais são as vantagens de usar o IronXL em vez do Microsoft Interop para gerar arquivos do Excel?

O IronXL oferece diversas vantagens em relação ao Microsoft Interop, incluindo desempenho mais rápido, dispensa a instalação do Microsoft Office e a capacidade de lidar com grandes conjuntos de dados de forma eficiente por meio de processamento paralelo.

É possível manipular grandes conjuntos de dados do Excel em Razor Pages usando o IronXL?

Sim, o IronXL é capaz de lidar com grandes conjuntos de dados do Excel de forma eficiente. Ele suporta processamento paralelo, o que pode melhorar o desempenho e a velocidade ao trabalhar com grandes volumes de dados.

O IronXL suporta diferentes formatos de arquivo do Excel?

O IronXL suporta os formatos de arquivo XLS e XLSX, permitindo a manipulação completa de arquivos Excel, incluindo importação, exportação e formatação de dados.

Existem opções gratuitas para usar o IronXL em desenvolvimento?

O IronXL está disponível gratuitamente para desenvolvimento não comercial. Uma versão de avaliação gratuita é fornecida para testes de produção, com diversos planos de preços disponíveis para uso comercial.

Como posso iniciar o download de um arquivo Excel no Razor Pages usando o IronXL?

Para iniciar o download de um arquivo Excel no Razor Pages usando o IronXL, crie uma WorkBook , preencha-a com dados e, em seguida, converta-a em uma matriz de bytes. Use o método File do Razor Pages para transmitir a matriz de bytes como um arquivo para download para o usuário.

O que torna o IronXL uma escolha preferível em relação a outras bibliotecas como o NPOI?

O IronXL é frequentemente preferido em relação a bibliotecas como o NPOI devido à sua implementação nativa em C#, que oferece desempenho mais rápido, facilidade de uso e não depende de componentes Java, tornando-o ideal para aplicações ASP.NET Core.

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