푸터 콘텐츠로 바로가기
IRONXL 사용하여

C#에서 Excel 범위를 관리하는 방법

프로그래밍 방식으로 Excel 파일을 다루면 C# 응용 프로그램의 효율성과 자동화 기능을 크게 향상시킬 수 있다. 보고서를 생성하든, 데이터를 처리하든, 복잡한 스프레드시트를 동적으로 만들든, Excel 파일 조작을 숙지하는 것이 중요하다. 이 튜토리얼에서는 IronXL을 사용하여 Excel 범위를 다루는 데 중점을 둘 것이다. 작성, 읽기, 그리고 Excel 파일 내의 범위를 조작하는 방법을 다룰 것이다.

How to Read Excel Ranges in C#

  1. Excel 파일을 처리할 IronXL 라이브러리를 설치한다.
  2. 워크북을 로드하고 워크시트를 지정한다.
  3. 읽을 셀 범위를 선택한다.
  4. 지정된 범위에서 데이터를 추출하고 읽는다.

IronXL이란 무엇인가요?

IronXL은 Excel 파일 작업을 단순화하는 C#용 종합 라이브러리로, 스프레드시트 데이터의 원활한 통합 및 조작을 위한 다양한 기능을 제공한다. 이 기능에는 Microsoft Excel 설치가 필요 없이 다양한 플랫폼 간 호환성을 가능하게 하는 Excel 파일의 읽기, 쓰기, 수정 등이 포함된다.

IronXL은 특정 , 범위 또는 전체 워크시트에서 데이터 추출을 용이하게 하며, 형식화, 스타일 지정, 조건부 형식화와 같은 고급 기능도 포함한다. 계산, 수식 및 통계 분석 지원을 통해 IronXL은 개발자가 프로그램 방식으로 Excel 작업을 효율적으로 처리할 수 있도록 하여 C# 응용 프로그램 내에서 데이터 중심 작업의 자동화를 위해 필수적인 도구로 만든다.

Getting Started with Excel Range of cells in C#

우선, 응용 프로그램에 IronXL 라이브러리를 설치해야 한다.

IronXL NuGet Install-Package

다음 명령어로 NuGet 패키지 관리자를 통해 IronXL을 설치할 수 있다:

Install-Package IronXl.Excel

위 명령어는 IronXL과 그 모든 종속성을 설치할 것이다.

Excel 범위를 C#에서 관리하는 방법: 그림 1

네임스페이스 추가

Program.cs 클래스의 맨 위 또는 IronXL 메서드를 사용하려는 위치에 다음 네임스페이스를 추가한다.

using IronXL;
using IronXL;
$vbLabelText   $csharpLabel

Excel 워크북 로드하기

가장 첫 번째 단계는 Excel 워크북을 로드하는 것이다. 다음 코드는 우리 응용 프로그램에 Excel 워크북을 로드할 것이다.

static void Main(string[] args)
{
    // Load an existing Excel workbook
    var workbook = WorkBook.Load("test_excel.xlsx");

    // Retrieve the specified worksheet from the workbook
    var sheet = workbook.GetWorkSheet("Sheet1");
}
static void Main(string[] args)
{
    // Load an existing Excel workbook
    var workbook = WorkBook.Load("test_excel.xlsx");

    // Retrieve the specified worksheet from the workbook
    var sheet = workbook.GetWorkSheet("Sheet1");
}
$vbLabelText   $csharpLabel

첫 번째 줄은 'test_excel.xlsx'라는 파일에서 기존의 Excel 워크북을 로드한다. 두 번째 줄은 로드된 워크북에서 'Sheet1'이라는 이름의 워크시트를 가져온다.

이 튜토리얼 전반에 걸쳐 다음 Excel 파일을 사용할 것이다.

Excel 범위를 C#에서 관리하는 방법: 그림 2

범위에서 데이터 읽기

이제 지정된 셀 범위에서 데이터를 읽어보자.

// Define a range from cell A2 to G10 in the worksheet
var range = sheet["A2:G10"];

// Iterate over each cell in the range and output its value
foreach (var item in range)
{
    Console.WriteLine(item);
}
// Define a range from cell A2 to G10 in the worksheet
var range = sheet["A2:G10"];

// Iterate over each cell in the range and output its value
foreach (var item in range)
{
    Console.WriteLine(item);
}
$vbLabelText   $csharpLabel

첫 번째 줄은 워크시트에서 주소 (A2에서 G10까지)의 특정 범위를 선택하여 여러 Excel 셀을 동시에 작업할 수 있게 한다. foreach (var item in range) 루프는 이 셀 범위 내의 각 셀을 반복하여 효율적인 데이터 처리를 가능하게 합니다.

Console.WriteLine(item);을 사용하여 코드가 각 셀의 값을 콘솔에 출력함으로써 범위의 내용을 쉽게 검토할 수 있게 합니다. 이 접근 방식은 데이터 처리을 단순화하고 코드 가독성을 향상시킨다.

범위 내에서 Excel 수식 사용하기

특정 범위를 선택하고 Excel 수식을 일부 구현해보자.

// Define a range from cell F2 to F42 for statistical analysis
var range = sheet["F2:F42"];

// Output the minimum age within the range
Console.WriteLine($"Minimum Age: {range.Min()}");

// Output the maximum age within the range
Console.WriteLine($"Maximum Age: {range.Max()}");

// Output the average age, casting the average value to an integer
Console.WriteLine($"Average Age: {(int)range.Avg()}");
// Define a range from cell F2 to F42 for statistical analysis
var range = sheet["F2:F42"];

// Output the minimum age within the range
Console.WriteLine($"Minimum Age: {range.Min()}");

// Output the maximum age within the range
Console.WriteLine($"Maximum Age: {range.Max()}");

// Output the average age, casting the average value to an integer
Console.WriteLine($"Average Age: {(int)range.Avg()}");
$vbLabelText   $csharpLabel

코드 var range = sheet["F2:F42"];는 F2에서 F42까지의 셀 범위를 선택하여 연령 데이터의 통계 분석을 용이하게 합니다. range.Min()range.Max()을 사용하여, 지정된 범위 내의 최소 및 최대 연령 값을 효율적으로 계산하여 인구 통계적 통찰력을 얻을 수 있도록 합니다.

추가적으로, range.Avg()는 평균 연령을 계산하여 데이터 해석을 위한 유용한 통계 지표를 제공합니다. 이 접근 방식은 데이터 분석 작업을 단순화하여 정보에 입각한 의사 결정을 위한 필수 통계 정보에 빠르게 접근할 수 있도록 한다.

Excel 범위를 C#에서 관리하는 방법: 그림 3

단일 셀에서 데이터 읽기

단일 셀에서 데이터를 읽어보자.

// Retrieve the value from cell B2 in the worksheet
var read_from_single_cell = sheet["B2"];

// Output the value in cell B2
Console.WriteLine($"The Value in Cell B2 is: {read_from_single_cell}");
// Retrieve the value from cell B2 in the worksheet
var read_from_single_cell = sheet["B2"];

// Output the value in cell B2
Console.WriteLine($"The Value in Cell B2 is: {read_from_single_cell}");
$vbLabelText   $csharpLabel

코드 var read_from_single_cell = sheet["B2"];는 워크시트에서 셀 B2에 저장된 값을 가져옵니다. 이 접근 방식을 사용하여 Excel 파일 내 특정 셀 값을 쉽게 접근할 수 있다.

Console.WriteLine($"The Value in Cell B2 is: {read_from_single_cell}");를 사용하여, 코드가 참조 셀의 가져온 값을 콘솔에 출력하여 데이터 확인 및 디버깅을 용이하게 합니다. 이는 Excel 파일에서 개별 셀 값을 검색하고 표시하는 과정을 단순화한다.

Excel 범위를 C#에서 관리하는 방법: 그림 4

전체 열에서 데이터 읽기

인덱스를 사용하여 전체 열에서 데이터를 읽어봅시다.

// Retrieve values from the column at index 2 (C column) 
var columnValues = sheet.GetColumn(2); // 2 is column index

// Iterate over each value in the column and output it
foreach (var columnValue in columnValues)
{
    Console.WriteLine(columnValue);
}
// Retrieve values from the column at index 2 (C column) 
var columnValues = sheet.GetColumn(2); // 2 is column index

// Iterate over each value in the column and output it
foreach (var columnValue in columnValues)
{
    Console.WriteLine(columnValue);
}
$vbLabelText   $csharpLabel

코드 var columnValues = sheet.GetColumn(2);는 워크시트에서 인덱스 2(C 열)에 위치한 열의 모든 값을 가져옵니다. 이렇게 하면 Excel 시트의 특정 열 내 모든 값에 효율적으로 액세스할 수 있습니다.

foreach 루프는 columnValues을 반복하여 열의 각 값을 Console.WriteLine(columnValue);을 사용하여 콘솔에 출력합니다. 이 방법은 Excel 파일에서 열 데이터를 처리하고 표시하여 데이터 분석 작업을 간소화합니다.

Excel 범위를 C#에서 관리하는 방법: 그림 5

또한 인덱스 대신 열 이름을 사용하여 열에서 데이터를 읽을 수 있습니다. 다음 예를 생각해 보세요.

// Retrieve values from the column with name "C"
var columnValues = sheet.GetColumn("C");
// Retrieve values from the column with name "C"
var columnValues = sheet.GetColumn("C");
$vbLabelText   $csharpLabel

이 방식으로 여러 열을 지정할 수 있습니다.

전체 행에서 데이터 읽기

행 번호를 사용하여 전체 행에서 데이터를 읽어봅시다.

// Retrieve values from the row at index 1 (Row 2)
var rowValues = sheet.GetRow(1); // 1 is row index

// Iterate over each value in the row and output it
foreach (var rowValue in rowValues)
{
    Console.Write(rowValue + "  ");
}
// Retrieve values from the row at index 1 (Row 2)
var rowValues = sheet.GetRow(1); // 1 is row index

// Iterate over each value in the row and output it
foreach (var rowValue in rowValues)
{
    Console.Write(rowValue + "  ");
}
$vbLabelText   $csharpLabel

코드 var rowValues = sheet.GetRow(1);는 워크시트에서 인덱스 1(행 2)에 위치한 단일 행의 모든 값을 가져와서 행 특정 데이터의 효율적인 접근을 가능하게 합니다. foreach 루프는 rowValues을 반복하여 행의 각 값을 Console.Write(rowValue + " ");을 사용하여 콘솔에 출력합니다.

이 방법은 Excel 파일에서 행 데이터를 추출하고 표시하는 과정을 단순화하여 데이터 분석 및 보고 작업을 지원합니다. 이런 방식으로 범위 지정 없이 여러 셀에서 값을 읽을 수 있습니다.

Excel 범위를 C#에서 관리하는 방법: 그림 6

셀 또는 범위에 데이터 쓰기

셀과 범위 둘 다에 데이터를 쓸 수 있습니다. 먼저 범위에 데이터를 씁니다.

// Select a range from D2 to D14 for modification
var range = sheet["D2:D14"];

// Set the value for each cell in the range
range.Value = "Prefer Not to Say"; // Change Gender Value

// Save the modified workbook to persist changes
workbook.Save();
// Select a range from D2 to D14 for modification
var range = sheet["D2:D14"];

// Set the value for each cell in the range
range.Value = "Prefer Not to Say"; // Change Gender Value

// Save the modified workbook to persist changes
workbook.Save();
$vbLabelText   $csharpLabel

코드 var range = sheet["D2:D14"];는 셀 D2에서 D14까지의 범위를 선택하여 대량 데이터 수정을 가능하게 합니다. range.Value를 '협조하지 않음'으로 설정하여, 지정된 범위 내의 각 셀의 성별 값을 효율적으로 업데이트하여 반복 작업을 최소화합니다.

후속 workbook.Save(); 명령은 이러한 변경 사항의 지속적인 저장을 보장하여 데이터 일관성과 무결성을 유지합니다. 이 방법은 대량 업데이트를 간소화하고 여러 셀 간의 균일성을 보장하여 데이터 관리 효율성을 향상시킵니다.

이제 특정 셀에 데이터를 씁니다.

// Set the value for cell B2
sheet["B2"].Value = "John";

// Save the workbook to persist the changes
workbook.Save();
// Set the value for cell B2
sheet["B2"].Value = "John";

// Save the workbook to persist the changes
workbook.Save();
$vbLabelText   $csharpLabel

코드 sheet["B2"].Value = "John";는 Excel 워크시트의 셀 B2에 직접 'John'이라는 값을 할당하여 특정 셀 값을 업데이트하기 위한 간단하고 직관적인 방법을 제공합니다. 이 방법은 개별 셀 내용을 수정하는 과정을 간소화하여 코드 가독성과 효율성을 향상시킵니다.

Excel 범위를 C#에서 관리하는 방법: 그림 7 - C# Excel 범위

결론

결론적으로, C#에서 IronXL을 사용한 Excel 범위 작업을 숙달하면 데이터 처리, 보고서 생성 및 동적 스프레드시트 작성과 같은 작업을 용이하게 하여 애플리케이션의 효율성과 자동화 기능을 크게 향상시킵니다.

IronXL의 강력한 Excel 파일 읽기, 쓰기 및 조작 기능을 통해 개발자는 데이터 처리 과정을 간소화하고 수식, 서식 및 통계 분석과 같은 고급 기능을 활용할 수 있습니다. 또한, IronXL은 다양한 프로젝트 요구 사항에 대한 유연성과 확장성을 보장하는 무료 체험판도 제공합니다.

자주 묻는 질문

C#에서 Excel 범위를 조작하는 방법을 어떻게 시작할 수 있을까요?

C#에서 Excel 범위를 조작하려면 NuGet 패키지 관리자를 사용하여 ` Install-Package IronXl.Excel 명령으로 IronXL 라이브러리를 설치하세요. 그런 다음 IronXL의 포괄적인 API를 사용하여 Excel 통합 문서를 불러오고 범위를 조작할 수 있습니다.

IronXL 사용하여 Excel 통합 문서를 불러오는 방법은 무엇인가요?

IronXL 에서 Excel 통합 문서를 로드하려면 WorkBook.Load 메서드를 사용하고 파일 이름을 인수로 전달하면 됩니다. 예를 들어 다음과 같습니다. var workbook = WorkBook.Load('test_excel.xlsx'); .

IronXL 에서 특정 범위의 세포를 읽는 데 사용할 수 있는 방법에는 어떤 것들이 있습니까?

IronXL 에서는 sheet['A2:G10'] 과 같은 구문을 사용하여 범위를 정의하고 반복문을 통해 각 셀의 값에 접근함으로써 특정 셀 범위를 읽을 수 있습니다.

엑셀 범위 내의 데이터에 대해 통계 분석을 수행하려면 어떻게 해야 합니까?

IronXL 사용하면 범위를 선택하고 range.Min() , range.Max() , range.Avg() 와 같은 메서드를 적용하여 각각 최소값, 최대값, 평균값을 계산함으로써 통계 분석을 수행할 수 있습니다.

IronXL 사용하여 특정 셀에 데이터를 쓰는 과정은 무엇입니까?

IronXL 에서 특정 셀에 데이터를 쓰려면 해당 셀에 값을 직접 할당합니다. 예를 들어 sheet['B2'].Value = 'John'; 와 같이 입력한 다음 통합 문서를 저장하여 변경 사항을 저장합니다.

IronXL 에서 범위를 지정하지 않고 전체 열의 데이터를 읽을 수 있나요?

네, IronXL sheet.GetColumn(index) 또는 sheet.GetColumn('C') 사용하여 전체 열을 읽을 수 있으므로 인덱스 또는 열 이름을 사용하여 데이터를 검색할 수 있습니다.

IronXL 사용하여 행 전체에서 데이터를 추출하는 방법은 무엇입니까?

IronXL 에서 전체 행의 데이터를 추출하려면 sheet.GetRow(index) 사용하고 검색된 값을 반복하여 데이터에 접근하세요.

IronXL Excel 파일 조작을 위해 어떤 고급 기능을 제공합니까?

IronXL 서식 지정, 스타일 지정, 조건부 서식 지정, 계산 및 수식 지원과 같은 고급 기능을 제공하여 C# 애플리케이션 내에서 Excel 파일을 조작하는 기능을 향상시킵니다.

구매 전에 IronXL 사용해 볼 수 있을까요?

네, IronXL 무료 체험판을 제공하므로 개발자는 초기 비용 부담 없이 기능을 살펴보고 프로젝트에 적합한지 판단할 수 있습니다.

IronXL C# 애플리케이션의 자동화를 어떻게 향상시킬 수 있을까요?

IronXL C# 애플리케이션에서 Excel 파일을 프로그래밍 방식으로 원활하게 조작할 수 있도록 지원하여 자동화를 향상시킵니다. 이는 Microsoft Excel을 설치하지 않고도 데이터 처리, 보고서 생성, 동적 스프레드시트 생성과 같은 작업에 필수적입니다.

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

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

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

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me