C#에서 Excel 명명 범위 관리하기

IronXL을 사용하여 C#에서 지정된 범위를 추가하는 방법

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

지정된 범위는 고유한 이름으로 식별되는 특정 셀 범위입니다. 셀 주소(A1:B10와 같은)로 범위를 참조하는 대신, 범위에 이름을 지정하여 수식과 함수에서 참조하고 이해하기 쉽게 할 수 있습니다. 예를 들어, 범위를 "SalesData"라고 지정한 경우, 셀 범위를 직접 지정하는 대신 SUM(SalesData)와 같은 수식에서 이를 참조할 수 있습니다.

지정된 범위는 C#의 Excel 수식을 작업할 때 특히 유용하여 코드를 더 읽기 쉽고 유지보수하기 좋게 만듭니다. IronXL의 강력한 범위 선택 기능과 결합할 때 지정된 범위는 효율적인 스프레드시트 관리를 위한 필수 도구가 됩니다.

Quickstart: 한 줄로 IronXL을 사용하여 지정된 범위 추가

IronXL을 사용하여 단일 메서드 호출로 지정된 범위를 정의합니다. 범위를 선택하고 SaveAsNamedRange 메서드를 적용하세요.

  1. NuGet 패키지 관리자를 사용하여 https://www.nuget.org/packages/IronXl.Excel 설치하기

    PM > Install-Package IronXl.Excel
  2. 다음 코드 조각을 복사하여 실행하세요.

    new IronXl.WorkBook()
        .DefaultWorkSheet["A1:B2"].SaveAsNamedRange("MyRange", true);
  3. 실제 운영 환경에서 테스트할 수 있도록 배포하세요.

    무료 체험판으로 오늘 프로젝트에서 IronXL 사용 시작하기

    arrow pointer


내 워크시트에 지정된 범위를 어떻게 추가하나요?

이름이 지정된 범위를 추가하려면, 이름이 지정된 범위의 이름을 텍스트로 전달하고 범위 객체를 전달하여 AddNamedRange 메서드를 사용하세요. 이 메서드는 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");
$vbLabelText   $csharpLabel

지정된 범위를 만들 때 Excel의 명명 규칙을 따르는 것이 중요합니다:

  • 이름은 문자나 밑줄로 시작해야 합니다
  • 이름은 공백을 포함할 수 없습니다(대신 밑줄을 사용)
  • 이름은 셀 참조와 충돌할 수 없습니다("A1" 또는 "R1C1"와 같이)
  • 이름은 대소문자 구별을 하지 않지만 일관된 대소문자 사용은 가독성을 향상시킵니다
Excel 이름 상자는 'range1'을 표시하고 A1:A5 셀이 선택 및 강조되어 있으며, 빨간 화살표가 그리드를 가리킵니다

지정된 범위는 비연속 선택 또는 전체 행/열에 대해서도 생성될 수 있습니다. 더 복잡한 범위 작업의 경우 다수의 Excel 범위 결합에 대한 가이드를 확인하십시오.


내 워크북에서 지정된 범위를 어떻게 검색하나요?

모든 지정된 범위를 한 번에 가져오는 메서드는 무엇인가요?

GetNamedRanges 메서드는 워크시트의 모든 이름이 지정된 범위를 문자열 목록으로 반환합니다. 이는 워크북의 모든 지정된 범위를 감사하거나 문서화해야 할 때 특히 유용하며, 기존 스프레드시트를 불러와 그 구조를 분석하는 것과 유사합니다.

: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();
$vbLabelText   $csharpLabel

특정 지정된 범위를 이름으로 어떻게 찾나요?

FindNamedRange 메서드를 사용하여 Sheet1!$A$1:$A$5와 같은 이름이 지정된 범위의 절대 참조를 검색하세요. 주소 수식을 사용하여 지정된 범위를 참조하거나 지정된 범위에 해당하는 범위를 선택할 수 있습니다. 범위를 선택할 때, 워크시트 이름에 주의해야 합니다.

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

여러 워크시트에서 지정된 범위 작업

지정된 범위는 워크북 수준 또는 워크시트 수준 범위를 가질 수 있습니다. 워크북 수준 이름은 어떤 워크시트에서도 접근 가능하지만, 워크시트 수준 이름은 특정 워크시트 내에서만 접근 가능합니다. 이 구분은 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
$vbLabelText   $csharpLabel

내 워크시트에서 지정된 범위를 어떻게 제거하나요?

이름이 지정된 범위를 제거하려면 이름이 지정된 범위의 이름을 텍스트로 전달하여 RemoveNamedRange 메서드를 사용하세요. 이것은 깔끔하고 조직된 워크북 유지 및 스프레드시트 구조 업데이트 시 명명 충돌 방지를 위해 필수적입니다.

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

고급 네임드 범위 시나리오

공식과 함께 네임드 범위 사용하기

네임드 범위는 Excel 공식을 사용할 때 진가를 발휘합니다. 이들은 공식을 더 읽기 쉽게 하고 유지 관리하기 쉽게 만듭니다. C#에서 Excel 공식 사용 가이드를 참조하여 포괄적인 공식 관리를 확인하세요.

// 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();
$vbLabelText   $csharpLabel

동적 네임드 범위

IronXL은 Excel의 동적 네임드 범위(OFFSET 또는 INDEX 함수 사용)를 직접적으로 지원하지 않지만, 데이터 변경에 따라 프로그래밍 방식으로 네임드 범위를 업데이트할 수 있습니다:

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

데이터 유효성 검사를 위한 네임드 범위

네임드 범위는 데이터 유효성 검사 목록과 제약 조건을 만드는 데 탁월합니다. Excel의 데이터 유효성 검사 기능과 결합하면 데이터 무결성을 보장하는 강력한 방법을 제공합니다:

// 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"
$vbLabelText   $csharpLabel

모범 사례 및 성능 향상 팁

  1. 명명 규칙: 데이터의 목적을 나타내는 설명적이고 일관된 이름을 사용하세요 (예: "Data1" 대신 Sales_Q1_2024)
  2. 범위 관리: 충돌을 피하기 위해 워크북 대 워크시트 범위에 대해 의도적으로 관리하세요
  3. 문서화: 특히 복잡한 워크북에서는 네임드 범위와 그 목적의 목록을 유지 관리하세요
  4. 성능: 네임드 범위는 성능에 최소한의 영향을 미치지만, 수천 개의 작은 네임드 범위를 생성하는 것을 피하세요
  5. 업데이트: 데이터 구조가 변경되면 정확성을 유지하기 위해 해당 네임드 범위를 업데이트하거나 제거하세요

더 고급 Excel 작업 및 성능 최적화를 위해 IronXL 문서 전체를 탐색하거나 Excel 범위 정렬 또는 Excel 표 작업과 같은 특정 기능을 확인해보세요.

자주 묻는 질문

C#을 사용하여 Excel에서 이름이 지정된 범위를 만드는 방법은 무엇입니까?

IronXL을 사용하여 C#으로 Excel에 이름 지정 범위를 만들려면 워크시트 인덱서를 사용하여 대상 범위를 선택한 다음(예: workSheet["A1:B2"]) 원하는 이름을 지정하여 SaveAsNamedRange 메서드를 호출합니다. 텍스트로 이름을 전달하고 범위 개체를 사용하여 AddNamedRange 메서드를 사용할 수도 있습니다.

엑셀에서 이름 지정 범위를 만들 때의 명명 규칙은 무엇인가요?

IronXL을 사용하여 명명된 범위를 만들 때는 다음 Excel 명명 규칙을 따르십시오. 이름은 문자 또는 밑줄로 시작해야 하며, 공백을 포함할 수 없습니다(대신 밑줄 사용). 또한 'A1'과 같은 셀 참조와 충돌할 수 없으며 대소문자를 구분하지 않습니다. IronXL은 명명된 범위를 만들 때 이러한 규칙을 자동으로 적용합니다.

엑셀 통합 문서에서 명명된 모든 범위를 프로그램으로 가져올 수 있나요?

예, IronXL은 워크시트의 모든 명명된 범위를 문자열 목록으로 반환하는 GetNamedRanges 메서드를 제공합니다. 이 기능은 IronXL이 로드된 기존 통합 문서의 명명된 범위를 감사하거나 문서화할 때 특히 유용합니다.

C#에서 명명된 범위를 사용하면 Excel 수식의 효율성을 어떻게 향상시킬 수 있을까요?

IronXL을 사용할 때 명명된 범위는 Excel 수식을 더 읽기 쉽고 유지 관리하기 쉽게 만들어 줍니다. 'A1:B10'과 같은 셀 참조 대신 'SalesData'와 같이 설명적인 이름을 수식에 사용하면 C# 코드를 더 명확하고 이해하기 쉽게 만들 수 있습니다.

인접하지 않은 셀에 대해 이름이 지정된 범위를 만들 수 있습니까?

네, IronXL은 연속되지 않은 영역이나 전체 행 또는 열에 대해 명명된 범위를 생성하는 것을 지원합니다. 이 라이브러리의 포괄적인 워크시트 관리 기능을 통해 단순한 직사각형 영역을 넘어 복잡한 명명된 범위를 정의할 수 있습니다.

한 줄의 코드로 명명된 범위를 추가하는 가장 빠른 방법은 무엇입니까?

IronXL을 사용하면 다음과 같이 한 줄로 명명된 범위를 만들 수 있습니다. `new IronXl.WorkBook().DefaultWorkSheet["A1:B2"].SaveAsNamedRange("MyRange", true)`. 이는 IronXL의 간소화된 Excel 조작 API를 보여줍니다.

엑셀 워크시트에서 이름이 지정된 범위를 제거하려면 어떻게 해야 하나요?

IronXL은 워크시트에서 명명된 범위를 쉽게 삭제할 수 있는 RemoveNamedRange 메서드를 제공합니다. 이는 명명된 범위를 프로그래밍 방식으로 추가, 검색 및 제거할 수 있도록 하는 라이브러리의 완벽한 명명된 범위 관리 기능의 일부입니다.

커티스 차우
기술 문서 작성자

커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다.

커티스는 개발 분야 외에도 사물 인터넷(IoT)에 깊은 관심을 가지고 있으며, 하드웨어와 소프트웨어를 통합하는 혁신적인 방법을 연구합니다. 여가 시간에는 게임을 즐기거나 디스코드 봇을 만들면서 기술에 대한 애정과 창의성을 결합합니다.

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

시작할 준비 되셨나요?
Nuget 다운로드 1,890,100 | 버전: 2026.3 방금 출시되었습니다

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

아직도 스크롤하고 계신가요?

빠른 증거를 원하시나요? PM > Install-Package IronXl.Excel
샘플을 실행하세요 데이터가 스프레드시트로 변환되는 것을 지켜보세요.