Como Adicionar Intervalo Nomeado em Planilha Excel com C# e IronXL
Um intervalo nomeado é um intervalo especificado de células identificado por um nome único ao criar planilha Excel ou editar planilha Excel. Em vez de se referir a um intervalo por seus endereços de célula (como A1:B10), você pode atribuir um nome a um intervalo, tornando mais fácil referenciar e entender em fórmulas e funções. Por exemplo, se você nomeou um intervalo como "SalesData", pode referir-se a ele em uma fórmula como SUM(SalesData) em vez de especificar o intervalo de células diretamente.
Intervalos nomeados são particularmente úteis ao trabalhar com fórmulas do Excel em C# pois tornam seu código mais legível e fácil de manter. Quando combinados com as poderosas capacidades de seleção de intervalo do IronXL, os intervalos nomeados tornam-se uma ferramenta essencial para gerenciamento eficiente de planilhas.
Início Rápido: Adiciona um Intervalo Nomeado com IronXL em Uma Linha
Defina um intervalo nomeado usando IronXL com uma única chamada de método. Selecione seu intervalo e aplique o método SaveAsNamedRange.
-
Instale IronXL com o Gerenciador de Pacotes NuGet
PM > Install-Package IronXL.Excel -
Copie e execute este trecho de código.
new IronXL.WorkBook() .DefaultWorkSheet["A1:B2"].SaveAsNamedRange("MyRange", true); -
Implante para testar em seu ambiente de produção.
Comece a usar IronXL em seu projeto hoje com uma avaliação gratuita
- Baixe a biblioteca C# para adicionar intervalos nomeados
- Selecione o intervalo alvo com **`workSheet["A1:A5"]`**
- Utilize o método `AddNamedRange` para adicionar intervalos nomeados
- Recuperar intervalo nomeado de várias maneiras
- Remova o intervalo nomeado com facilidade usando o método `RemoveNamedRange`
Como Posso Adicionar um Intervalo Nomeado à Minha Planilha?
Para adicionar um intervalo nomeado, use o método AddNamedRange passando o nome do intervalo nomeado como texto e o objeto de intervalo. Este método faz parte dos recursos abrangentes de gerenciamento de planilha do IronXL.
:path=/static-assets/excel/content-code-examples/how-to/named-range-add-named-range.cs
using IronXL;
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Select range
var selectedRange = workSheet["A1:A5"];
// Add named range
workSheet.AddNamedRange("range1", selectedRange);
workBook.SaveAs("addNamedRange.xlsx");
Imports IronXL
Private workBook As WorkBook = WorkBook.Create()
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
' Select range
Private selectedRange = workSheet("A1:A5")
' Add named range
workSheet.AddNamedRange("range1", selectedRange)
workBook.SaveAs("addNamedRange.xlsx")
Ao criar intervalos nomeados, é importante seguir as convenções de nomenclatura do Excel:
- Os nomes devem começar com uma letra ou sublinhado
- Os nomes não podem conter espaços (use sublinhados em vez disso)
- Os nomes não podem conflitar com referências de células (como "A1" ou "R1C1")
- Os nomes não são sensíveis a maiúsculas e minúsculas, mas manter uma capitalização consistente melhora a legibilidade
Intervalos nomeados também podem ser criados para seleções não contíguas ou linhas/colunas inteiras. Para operações de intervalo mais complexas, confira o guia sobre como combinar vários intervalos do Excel.
Como Posso Recuperar Intervalos Nomeados da Minha Pasta de Trabalho?
Qual método obtém todos os intervalos nomeados de uma vez?
O método GetNamedRanges retorna todos os intervalos nomeados na planilha como uma lista de strings. Isso é particularmente útil quando você precisa auditar ou documentar todos os intervalos nomeados em uma pasta de trabalho, semelhante a como você pode carregar planilhas existentes para analisar sua estrutura.
:path=/static-assets/excel/content-code-examples/how-to/named-range-retrieve-all-named-range.cs
using IronXL;
WorkBook workBook = WorkBook.Load("addNamedRange.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Get all named range
var namedRangeList = workSheet.GetNamedRanges();
Imports IronXL
Private workBook As WorkBook = WorkBook.Load("addNamedRange.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
' Get all named range
Private namedRangeList = workSheet.GetNamedRanges()
Como encontro um intervalo nomeado específico pelo nome?
Use o método FindNamedRange para recuperar a referência absoluta do intervalo nomeado, como Sheet1!$A$1:$A$5. A fórmula do endereço pode então ser usada para referenciar o intervalo nomeado ou selecionar o intervalo correspondente ao intervalo nomeado. Ao selecionar o intervalo, você deve prestar atenção ao nome da planilha.
:path=/static-assets/excel/content-code-examples/how-to/named-range-retrieve-specific-named-range.cs
using IronXL;
WorkBook workBook = WorkBook.Load("addNamedRange.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Get named range address
string namedRangeAddress = workSheet.FindNamedRange("range1");
// Select range
var range = workSheet[$"{namedRangeAddress}"];
Imports IronXL
Private workBook As WorkBook = WorkBook.Load("addNamedRange.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
' Get named range address
Private namedRangeAddress As String = workSheet.FindNamedRange("range1")
' Select range
Private range = workSheet($"{namedRangeAddress}")
Trabalhando com intervalos nomeados em várias planilhas
Os intervalos nomeados podem ter escopo de nível de pasta de trabalho ou de nível de planilha. Nomes de nível de pasta de trabalho são acessíveis de qualquer planilha, enquanto nomes de nível de planilha são acessíveis apenas dentro da planilha específica. Essa distinção é importante ao gerir várias planilhas em seus arquivos Excel.
// Example: Accessing named ranges from different worksheets
WorkBook workBook = WorkBook.Load("multisheet.xlsx");
WorkSheet sheet1 = workBook.GetWorkSheet("Sheet1");
WorkSheet sheet2 = workBook.GetWorkSheet("Sheet2");
// Both can access a workbook-level named range
var range1 = sheet1["GlobalData"];
var range2 = sheet2["GlobalData"]; // Same named range
// Example: Accessing named ranges from different worksheets
WorkBook workBook = WorkBook.Load("multisheet.xlsx");
WorkSheet sheet1 = workBook.GetWorkSheet("Sheet1");
WorkSheet sheet2 = workBook.GetWorkSheet("Sheet2");
// Both can access a workbook-level named range
var range1 = sheet1["GlobalData"];
var range2 = sheet2["GlobalData"]; // Same named range
Imports System
' Example: Accessing named ranges from different worksheets
Dim workBook As WorkBook = WorkBook.Load("multisheet.xlsx")
Dim sheet1 As WorkSheet = workBook.GetWorkSheet("Sheet1")
Dim sheet2 As WorkSheet = workBook.GetWorkSheet("Sheet2")
' Both can access a workbook-level named range
Dim range1 = sheet1("GlobalData")
Dim range2 = sheet2("GlobalData") ' Same named range
Como removo um intervalo nomeado da minha planilha?
Para remover o intervalo nomeado, use o método RemoveNamedRange passando o nome do intervalo nomeado como texto. Isso é essencial para manter pastas de trabalho organizadas e limpas, além de evitar conflitos de nomes ao atualizar estruturas de planilhas.
:path=/static-assets/excel/content-code-examples/how-to/named-range-remove-named-range.cs
using IronXL;
WorkBook workBook = WorkBook.Load("addNamedRange.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Remove named range
workSheet.RemoveNamedRange("range1");
Imports IronXL
Private workBook As WorkBook = WorkBook.Load("addNamedRange.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
' Remove named range
workSheet.RemoveNamedRange("range1")
Cenários avançados de intervalo nomeado
Usando intervalos nomeados com fórmulas
Os intervalos nomeados realmente brilham quando usados com fórmulas do Excel. Eles tornam as fórmulas mais legíveis e fáceis de manter. Para uma gestão abrangente de fórmulas, veja o guia sobre fórmulas do Excel em C#.
// Create named ranges for formula use
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Create sample data
workSheet["A1:A5"].Value = new int[] { 10, 20, 30, 40, 50 };
workSheet["B1:B5"].Value = new int[] { 5, 10, 15, 20, 25 };
// Add named ranges
workSheet.AddNamedRange("FirstColumn", workSheet["A1:A5"]);
workSheet.AddNamedRange("SecondColumn", workSheet["B1:B5"]);
// Use named ranges in formulas
workSheet["D1"].Formula = "=SUM(FirstColumn)";
workSheet["D2"].Formula = "=AVERAGE(SecondColumn)";
workSheet["D3"].Formula = "=SUM(FirstColumn) + SUM(SecondColumn)";
// Evaluate formulas
workSheet.EvaluateAll();
// Create named ranges for formula use
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Create sample data
workSheet["A1:A5"].Value = new int[] { 10, 20, 30, 40, 50 };
workSheet["B1:B5"].Value = new int[] { 5, 10, 15, 20, 25 };
// Add named ranges
workSheet.AddNamedRange("FirstColumn", workSheet["A1:A5"]);
workSheet.AddNamedRange("SecondColumn", workSheet["B1:B5"]);
// Use named ranges in formulas
workSheet["D1"].Formula = "=SUM(FirstColumn)";
workSheet["D2"].Formula = "=AVERAGE(SecondColumn)";
workSheet["D3"].Formula = "=SUM(FirstColumn) + SUM(SecondColumn)";
// Evaluate formulas
workSheet.EvaluateAll();
' Create named ranges for formula use
Dim workBook As WorkBook = WorkBook.Create()
Dim workSheet As WorkSheet = workBook.DefaultWorkSheet
' Create sample data
workSheet("A1:A5").Value = New Integer() {10, 20, 30, 40, 50}
workSheet("B1:B5").Value = New Integer() {5, 10, 15, 20, 25}
' Add named ranges
workSheet.AddNamedRange("FirstColumn", workSheet("A1:A5"))
workSheet.AddNamedRange("SecondColumn", workSheet("B1:B5"))
' Use named ranges in formulas
workSheet("D1").Formula = "=SUM(FirstColumn)"
workSheet("D2").Formula = "=AVERAGE(SecondColumn)"
workSheet("D3").Formula = "=SUM(FirstColumn) + SUM(SecondColumn)"
' Evaluate formulas
workSheet.EvaluateAll()
Intervalos nomeados dinâmicos
Embora o IronXL não suporte diretamente os intervalos nomeados dinâmicos do Excel (usando funções OFFSET ou INDEX), você pode programaticamente atualizar intervalos nomeados com base em alterações nos dados:
// Update named range based on data size
WorkBook workBook = WorkBook.Load("dynamicData.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Find last row with data
int lastRow = 1;
while (!workSheet[$"A{lastRow}"].IsEmpty)
{
lastRow++;
}
lastRow--; // Adjust to actual last row
// Remove old range and add new one
workSheet.RemoveNamedRange("DataRange");
workSheet.AddNamedRange("DataRange", workSheet[$"A1:A{lastRow}"]);
// Update named range based on data size
WorkBook workBook = WorkBook.Load("dynamicData.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Find last row with data
int lastRow = 1;
while (!workSheet[$"A{lastRow}"].IsEmpty)
{
lastRow++;
}
lastRow--; // Adjust to actual last row
// Remove old range and add new one
workSheet.RemoveNamedRange("DataRange");
workSheet.AddNamedRange("DataRange", workSheet[$"A1:A{lastRow}"]);
Imports IronXL
' Update named range based on data size
Dim workBook As WorkBook = WorkBook.Load("dynamicData.xlsx")
Dim workSheet As WorkSheet = workBook.DefaultWorkSheet
' Find last row with data
Dim lastRow As Integer = 1
While Not workSheet($"A{lastRow}").IsEmpty
lastRow += 1
End While
lastRow -= 1 ' Adjust to actual last row
' Remove old range and add new one
workSheet.RemoveNamedRange("DataRange")
workSheet.AddNamedRange("DataRange", workSheet($"A1:A{lastRow}"))
Intervalos nomeados para validação de dados
Os intervalos nomeados são excelentes para a criação de listas e restrições de validação de dados. Quando combinados com as funcionalidades de validação de dados do Excel, eles fornecem uma maneira poderosa de garantir a integridade dos dados:
// Create a named range for validation list
workSheet["F1:F5"].Value = new string[] { "Option1", "Option2", "Option3", "Option4", "Option5" };
workSheet.AddNamedRange("ValidationList", workSheet["F1:F5"]);
// Apply to data validation (conceptual example)
// The actual validation would reference "ValidationList"
// Create a named range for validation list
workSheet["F1:F5"].Value = new string[] { "Option1", "Option2", "Option3", "Option4", "Option5" };
workSheet.AddNamedRange("ValidationList", workSheet["F1:F5"]);
// Apply to data validation (conceptual example)
// The actual validation would reference "ValidationList"
' Create a named range for validation list
workSheet("F1:F5").Value = New String() {"Option1", "Option2", "Option3", "Option4", "Option5"}
workSheet.AddNamedRange("ValidationList", workSheet("F1:F5"))
' Apply to data validation (conceptual example)
' The actual validation would reference "ValidationList"
Melhores práticas e dicas de desempenho
- Convenções de Nomes: Use nomes descritivos e consistentes que indiquem o propósito dos dados (por exemplo,
Sales_Q1_2024em vez de "Data1") - Gestão de escopo: Seja intencional sobre o escopo da pasta de trabalho versus escopo da planilha para evitar conflitos
- Documentação: Mantenha uma lista de intervalos nomeados e seus propósitos, especialmente em pastas de trabalho complexas
- Desempenho: Intervalos nomeados têm impacto de desempenho mínimo, mas evite criar milhares de pequenos intervalos nomeados
- Atualizações: Quando as estruturas de dados mudam, atualize ou remova os intervalos nomeados correspondentes para manter a precisão
Para operações avançadas do Excel e otimização de desempenho, explore a documentação completa do IronXL ou verifique recursos específicos como ordenar intervalos do Excel ou trabalhar com tabelas do Excel.
Perguntas frequentes
Como faço para criar um intervalo nomeado no Excel usando C#?
Para criar um intervalo nomeado no Excel usando C# com IronXL, selecione o intervalo desejado usando o indexador de planilha (por exemplo, workSheet["A1:B2"]) e, em seguida, chame o método SaveAsNamedRange com o nome desejado. Você também pode usar o método AddNamedRange passando o nome como texto e o objeto de intervalo.
Quais são as regras de nomenclatura para intervalos nomeados no Excel?
Ao usar o IronXL para criar intervalos nomeados, siga estas convenções de nomenclatura do Excel: os nomes devem começar com uma letra ou sublinhado, não podem conter espaços (use sublinhados em vez de espaços), não podem entrar em conflito com referências de células como 'A1' e não diferenciam maiúsculas de minúsculas. O IronXL aplica essas regras automaticamente ao criar intervalos nomeados.
É possível recuperar todos os intervalos nomeados de uma planilha do Excel programaticamente?
Sim, o IronXL oferece o método GetNamedRanges, que retorna todos os intervalos nomeados na planilha como uma lista de strings. Esse recurso é particularmente útil ao auditar ou documentar intervalos nomeados em pastas de trabalho existentes carregadas com o IronXL.
Como os intervalos nomeados podem melhorar minhas fórmulas do Excel em C#?
Os intervalos nomeados tornam as fórmulas do Excel mais legíveis e fáceis de manter ao trabalhar com o IronXL. Em vez de usar referências de células como 'A1:B10', você pode usar nomes descritivos como 'SalesData' em suas fórmulas, tornando seu código C# mais claro e fácil de entender.
É possível criar intervalos nomeados para células não contíguas?
Sim, o IronXL permite criar intervalos nomeados para seleções não contíguas e linhas ou colunas inteiras. Os recursos abrangentes de gerenciamento de planilhas da biblioteca permitem definir intervalos nomeados complexos, que vão além de simples seleções retangulares.
Qual a maneira mais rápida de adicionar um intervalo nomeado em uma única linha de código?
Com o IronXL, você pode criar um intervalo nomeado em uma única linha usando: `new IronXL.WorkBook().DefaultWorkSheet["A1:B2"].SaveAsNamedRange("MyRange", true)`. Isso demonstra a API simplificada do IronXL para manipulação do Excel.
Como faço para remover intervalos nomeados de uma planilha do Excel?
O IronXL oferece o método RemoveNamedRange para excluir facilmente intervalos nomeados da sua planilha. Isso faz parte dos recursos completos de gerenciamento de intervalos nomeados da biblioteca, permitindo adicionar, recuperar e remover intervalos nomeados programaticamente.

