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.
Como Gerar Arquivos Excel em Razor Pages
- Instalar biblioteca C# para gerar arquivos Excel no Razor
- Acessar ou criar um novo arquivo Excel em um método
- Adicionar dados e estilo ao objeto **WorkBook** no Razor
- Usar o método File para baixar automaticamente o arquivo Excel quando o botão for pressionado
- Inspecionar o arquivo Excel gerado
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:
- Visual Studio (Última Versão)
- .NET Framework 6 ou 7
- 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");
}
Public Function OnPostExport() As FileResult
' Create a new WorkBook with XLSX format
Dim workBook As New WorkBook(IronXL.ExcelFileFormat.XLSX)
' Create a new WorkSheet named "data"
Dim workSheet As 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")
End Function
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 umStreampara 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>
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.
IronXL Gera Planilhas Excel
Após clicar em "Gerar Arquivo Excel!", o arquivo será 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.
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.



