Como criar um arquivo Excel em C#

Como Adicionar Painel Congelado no Excel com C

This article was translated from English: Does it need improvement?
Translated
View the article in English

Em grandes planilhas do Excel com mais de 50 linhas ou colunas além de 'Z', visualizar dados enquanto mantém os cabeçalhos visíveis torna-se desafiador. A funcionalidade Painel Congelado em C# oferece uma solução elegante ao bloquear linhas e colunas específicas enquanto permite que o restante seja rolado livremente.

Este recurso torna-se essencial ao trabalhar com relatórios financeiros, bancos de dados de funcionários ou listas de inventário onde você precisa de visibilidade constante dos cabeçalhos de coluna ou identificadores de linha. Com a biblioteca Excel da IronXL, você pode programaticamente adicionar painéis congelados para melhorar a navegação dos dados e a experiência do usuário em suas aplicações .NET.

Início Rápido: Trave Linhas de Cabeçalho e Colunas em Uma Linha

Use o método simples CreateFreezePane(colSplit, rowSplit) para congelar linhas ou colunas em segundos. Nenhuma configuração complexa — apenas carregue sua planilha, chame este método, e seus cabeçalhos permanecem bloqueados no topo enquanto você rola.

  1. Instale IronXL com o Gerenciador de Pacotes NuGet

    PM > Install-Package IronXl.Excel
  2. Copie e execute este trecho de código.

    workSheet.CreateFreezePane(1, 4);
  3. Implante para testar em seu ambiente de produção.

    Comece a usar IronXL em seu projeto hoje com uma avaliação gratuita

    arrow pointer


Como Adicionar Painel Congelado no Excel?

Os painéis congelados bloqueiam linhas e colunas no lugar, permitindo que permaneçam visíveis enquanto você rola. Este recurso mantém colunas ou linhas de cabeçalho no lugar enquanto se compara rapidamente informações. Esta funcionalidade é particularmente valiosa ao trabalhar com grandes conjuntos de dados ou quando é necessário manter o contexto enquanto navega por planilhas extensas.

O recurso de painel congelado na IronXL imita a funcionalidade nativa do Excel, tornando-o intuitivo para desenvolvedores familiarizados com a interface do Excel. Ao contrário das soluções de Interop do Excel, a IronXL oferece uma abordagem mais eficiente e amigável ao servidor para implementar painéis congelados programaticamente.

Como o CreateFreezePane Funciona com 2 Parâmetros?

Para adicionar um congelamento de painel, use o método CreateFreezePane, especificando a coluna e a linha a partir das quais o congelamento de painel deve começar. A coluna e a linha especificadas não estão incluídas no painel congelado. Por exemplo, workSheet.CreateFreezePane(1, 4) cria um congelamento de painel começando da coluna A e linhas 1 a 4.

Compreender o índice baseado em zero é crucial: coluna 0 refere-se à coluna A, coluna 1 a B, e assim por diante. O índice de linha segue o mesmo padrão. Este método é perfeito para cenários onde você deseja manter os cabeçalhos visíveis enquanto percorre as entradas de dados.

O exemplo de código abaixo demonstra como criar um painel congelado começando na coluna B e linha 4:

:path=/static-assets/excel/content-code-examples/how-to/add-freeze-panes-add.cs
using IronXL;
using System.Linq;

WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.WorkSheets.First();

// Create freeze pane from column(A-B) and row(1-3)
workSheet.CreateFreezePane(2, 3);

workBook.SaveAs("createFreezePanes.xlsx");
$vbLabelText   $csharpLabel

Como o Painel Congelado Parece em Ação?

Freeze Pane in Action

Como Remover o Painel Congelado?

Use o método RemovePane para remover todos os congelamentos de painel existentes da sua planilha. Isso é útil quando você precisa redefinir a visualização ou aplicar diferentes configurações de congelamento com base nas preferências do usuário ou alterações de dados.

:path=/static-assets/excel/content-code-examples/how-to/add-freeze-panes-remove.cs
// Remove all existing freeze or split pane
workSheet.RemovePane();
$vbLabelText   $csharpLabel

Quais São as Opções Avançadas de Painel Congelado?

O método CreateFreezePane oferece uma opção avançada para criar congelamentos de painel com funcionalidade de pré-deslocamento. Este recurso é útil quando você deseja focar a atenção em uma área específica da planilha enquanto mantém a funcionalidade de painel congelado.

Quando Devo Usar 4 Parâmetros para Painéis Congelados Avançados?

Este método permite que você adicione um painel congelado com base na coluna e linha iniciais especificadas. Além disso, ele permite aplicar rolagem à planilha. Isso é especialmente benéfico ao trabalhar com relatórios Excel formatados onde você precisa de controle preciso sobre a visualização inicial.

Por exemplo, usar workSheet.CreateFreezePane(5, 2, 6, 7) cria um congelamento de painel que abrange as colunas A-E e linhas 1-2. Inclui uma rolagem de 1 coluna e 5 linhas. Quando a planilha é aberta, ela exibe colunas A-E, G-... e linhas 1-2, 8-....

:path=/static-assets/excel/content-code-examples/how-to/add-freeze-panes-advance.cs
using IronXL;
using System.Linq;

WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.WorkSheets.First();

// Overwriting freeze or split pane to column(A-E) and row(1-5) as well as applying prescroll
// The column will show E,G,... and the row will show 5,8,...
workSheet.CreateFreezePane(5, 5, 6, 7);

workBook.SaveAs("createFreezePanes.xlsx");
$vbLabelText   $csharpLabel

Como é uma Pane Congelada Avançada?

Demonstração de painel congelado no Excel mostrando dados de funcionários com cabeçalhos congelados e coluna de ID, seta azul indica borda de congelamento

Casos Práticos para Congelamento de Paineis

Os congelamentos de painel são inestimáveis em vários cenários de negócios:

  1. Relatórios Financeiros: Mantenha cabeçalhos de mês/trimestre visíveis enquanto rola os dados anuais
  2. Bancos de Dados de Funcionários: Trave nomes e IDs de funcionários enquanto visualiza métricas de desempenho
  3. Gestão de Inventário: Fixe códigos e nomes de produtos enquanto revisa níveis de estoque
  4. Painéis de Vendas: Mantenha a visibilidade das categorias de produtos enquanto analisa dados de vendas regionais

Quando combinadas com fórmulas do Excel, as panes congeladas aumentam significativamente a eficiência da análise de dados.

Exemplo Completo: Construindo um Relatório de Dados com Panes Congeladas

Aqui está um exemplo abrangente mostrando como criar um relatório formatado com panes congeladas:

using IronXL;
using IronXl.Styles;

// Create a new workbook
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("Sales Report");

// Add headers
workSheet["A1"].Value = "Product ID";
workSheet["B1"].Value = "Product Name";
workSheet["C1"].Value = "Q1 Sales";
workSheet["D1"].Value = "Q2 Sales";
workSheet["E1"].Value = "Q3 Sales";
workSheet["F1"].Value = "Q4 Sales";
workSheet["G1"].Value = "Total";

// Style headers
var headerRange = workSheet["A1:G1"];
headerRange.Style.Font.Bold = true;
headerRange.Style.BackgroundColor = "#4472C4";
headerRange.Style.Font.Color = "#FFFFFF";

// Add sample data
for (int i = 2; i <= 50; i++)
{
    workSheet[$"A{i}"].Value = $"P{i-1:D3}";
    workSheet[$"B{i}"].Value = $"Product {i-1}";
    workSheet[$"C{i}"].Value = Random.Shared.Next(1000, 5000);
    workSheet[$"D{i}"].Value = Random.Shared.Next(1000, 5000);
    workSheet[$"E{i}"].Value = Random.Shared.Next(1000, 5000);
    workSheet[$"F{i}"].Value = Random.Shared.Next(1000, 5000);
    workSheet[$"G{i}"].Formula = $"=SUM(C{i}:F{i})";
}

// Apply freeze pane to keep headers visible
workSheet.CreateFreezePane(0, 1);

// Auto-size columns for better visibility
workSheet.AutoSizeColumn(0, 6);

// Save the workbook
workBook.SaveAs("SalesReportWithFreezePanes.xlsx");
using IronXL;
using IronXl.Styles;

// Create a new workbook
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("Sales Report");

// Add headers
workSheet["A1"].Value = "Product ID";
workSheet["B1"].Value = "Product Name";
workSheet["C1"].Value = "Q1 Sales";
workSheet["D1"].Value = "Q2 Sales";
workSheet["E1"].Value = "Q3 Sales";
workSheet["F1"].Value = "Q4 Sales";
workSheet["G1"].Value = "Total";

// Style headers
var headerRange = workSheet["A1:G1"];
headerRange.Style.Font.Bold = true;
headerRange.Style.BackgroundColor = "#4472C4";
headerRange.Style.Font.Color = "#FFFFFF";

// Add sample data
for (int i = 2; i <= 50; i++)
{
    workSheet[$"A{i}"].Value = $"P{i-1:D3}";
    workSheet[$"B{i}"].Value = $"Product {i-1}";
    workSheet[$"C{i}"].Value = Random.Shared.Next(1000, 5000);
    workSheet[$"D{i}"].Value = Random.Shared.Next(1000, 5000);
    workSheet[$"E{i}"].Value = Random.Shared.Next(1000, 5000);
    workSheet[$"F{i}"].Value = Random.Shared.Next(1000, 5000);
    workSheet[$"G{i}"].Formula = $"=SUM(C{i}:F{i})";
}

// Apply freeze pane to keep headers visible
workSheet.CreateFreezePane(0, 1);

// Auto-size columns for better visibility
workSheet.AutoSizeColumn(0, 6);

// Save the workbook
workBook.SaveAs("SalesReportWithFreezePanes.xlsx");
$vbLabelText   $csharpLabel

Este exemplo demonstra como as panes congeladas funcionam com estilo de célula e fórmulas para criar relatórios profissionais. A linha de cabeçalho permanece visível enquanto os usuários rolam pelas 50 linhas de dados de vendas.

Considerações sobre o desempenho

Ao implementar panes congeladas em planilhas grandes:

  • Aplique panes congeladas após popular dados para obter desempenho ideal
  • Considere usar formatação condicional para destacar dados importantes nas seções congeladas
  • Teste com o volume de dados alvo para garantir desempenho de rolagem suave

Para aplicações que lidam com grandes volumes de dados, explore exportações para diferentes formatos ou implemente estratégias de paginação junto com panes congeladas.

ObserveSomente uma configuração de pane congelada pode ser aplicada. Qualquer criação adicional de pane congelada substituirá a anterior. Panes congeladas não funcionam com versões do Microsoft Excel 97-2003 (.xls).

Perguntas frequentes

O que é a funcionalidade de congelar painéis e por que ela é útil em planilhas do Excel?

O recurso de congelamento de painel bloqueia linhas e colunas específicas, mantendo-as visíveis durante a rolagem em planilhas extensas. Isso é particularmente útil para manter a visibilidade dos cabeçalhos em relatórios financeiros, bancos de dados de funcionários ou listas de estoque. O IronXL fornece um método simples `CreateFreezePane` para implementar essa funcionalidade programaticamente em aplicações C#.

Como posso adicionar rapidamente painéis congelados para bloquear linhas de cabeçalho em C#?

Com o IronXL, você pode bloquear as linhas de cabeçalho com apenas uma linha de código usando o método CreateFreezePane. Basta chamar workSheet.CreateFreezePane(1, 4) para congelar colunas e linhas. Isso bloqueia a coluna A e as linhas de 1 a 4, permitindo que o restante da planilha role livremente.

Qual a diferença entre usar 2 parâmetros e 4 parâmetros com CreateFreezePane?

O método CreateFreezePane do IronXL oferece duas opções: usar 2 parâmetros (colSplit, rowSplit) cria um painel congelado básico a partir da posição especificada, enquanto usar 4 parâmetros permite adicionar painéis congelados com posicionamento pré-rolado para um controle mais avançado da área de visualização.

Como funciona a indexação baseada em zero ao configurar painéis congelados?

No método CreateFreezePane do IronXL, a indexação é baseada em zero. A coluna 0 refere-se à coluna A, a coluna 1 à coluna B e assim por diante. Da mesma forma, a indexação das linhas começa em 0. Por exemplo, CreateFreezePane(1, 4) cria um painel congelado a partir da coluna A e inclui as linhas de 1 a 4.

Por que eu deveria usar esta biblioteca em vez do Excel Interop para congelar painéis?

O IronXL oferece uma abordagem mais eficiente e amigável ao servidor em comparação com as soluções de interoperabilidade do Excel. Ele não exige que o Excel esteja instalado no servidor, oferece melhor desempenho para grandes conjuntos de dados e fornece uma API intuitiva que imita a funcionalidade nativa do Excel, sendo otimizada para aplicações .NET.

Posso exportar planilhas com painéis congelados para diferentes formatos de arquivo?

Sim, após adicionar painéis congelados usando o método CreateFreezePane do IronXL, você pode exportar sua planilha para vários formatos de arquivo, mantendo a funcionalidade de congelamento de painéis. A biblioteca preserva essas configurações ao salvar em formatos do Excel compatíveis.

Curtis Chau
Redator Técnico

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 ...

Leia mais

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/ready_to_started_202509.php
Line: 12
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 489
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/ready_to_started_202509.php
Line: 19
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 489
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

Pronto para começar?
Nuget Downloads 1,890,100 | Versão: 2026.3 acaba de ser lançado

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/still_scrolling_202512.php
Line: 17
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 71
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/how-to/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/still_scrolling_202512.php
Line: 24
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 71
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/how-to/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package IronXl.Excel
executar um exemplo Veja seus dados se transformarem em uma planilha.