C# Excel Interop 없이 엑셀 편집하는 방법
많은 프로젝트가 Excel을 사용하여 명확하게 소통하지만, Microsoft.Office.Interop.Excel을(를) 사용하고 있다면 복잡한 코드 줄을 많이 마주쳤을 것입니다. 이 튜토리얼에서는 IronXL을 C# Excel Interop 대체로 사용하여 Interop 없이 xlsx 파일을 생성하고 엑셀 편집 작업을 수행하는 방법을 설명합니다. C# 프로그래밍을 사용하여 Excel 파일 데이터를 활용하고, 스프레드시트 만들기, 수정 및 조작이 가능합니다.
- Excel No Interop 라이브러리 다운로드
- C#에서 Excel 파일에 접근
- 새 Excel 파일 생성 및 프로그래밍으로 데이터 삽입
- 기존 파일 수정, 셀 값 업데이트 및 교체, 행 제거 등
Excel Interop 대체 사용법
- Excel 파일을 처리할 수 있는 Excel 라이브러리를 설치하세요.
Workbook을(를) 열고 현재 Excel 파일을 추가합니다.- 기본 워크시트를 설정하세요.
- Excel 워크북에서 값을 읽어오세요.
- 값을 처리하고 표시하세요.
1단계
1. IronXL 라이브러리 다운로드
IronXL 라이브러리 다운로드 또는 NuGet으로 설치하여 무료 라이브러리에 액세스한 후, Interop 없이 Excel을 사용하는 이 튜토리얼을 단계별로 진행하세요. 프로젝트를 실제로 구현하고자 할 경우 라이선스도 이용할 수 있습니다.
Install-Package IronXL.Excel
튜토리얼 사용법
2. Excel 파일 데이터 접근
비즈니스 응용 프로그램을 개발하려면 Excel 파일에서 데이터를 쉽게 완벽하게 접근하고 다양한 요구 사항에 따라 프로그래밍하게 조작할 수 있어야 합니다. IronXL을 사용하여 WorkBook.Load() 함수를 사용하면 특정 Excel 파일을 읽을 수 있습니다.
WorkBook에 접근한 후 WorkBook.GetWorkSheet() 함수를 사용하여 특정 WorkSheet를 선택할 수 있습니다. 이제 모든 Excel 파일 데이터에 접근할 수 있습니다. 다음 예제를 통해 C# 프로젝트에서 Excel 파일 데이터를 얻는 데 이러한 기능을 어떻게 사용했는지 알아보세요.
// Import the IronXL library to access its functionality
using IronXL;
static void Main(string[] args)
{
// Access Excel file
WorkBook wb = WorkBook.Load("sample.xlsx");
// Access WorkSheet of Excel file
WorkSheet ws = wb.GetWorkSheet("Sheet1");
// Get a specific cell value, convert it to a string, and print it
string a = ws["A5"].Value.ToString();
Console.WriteLine("Getting Single Value:\n\n Value of Cell A5: {0}", a);
Console.WriteLine("\nGetting Many Cells Value using Loop:\n");
// Get multiple cell values using range function and iterate through them
foreach (var cell in ws["B2:B10"])
{
Console.WriteLine(" Value is: {0}", cell.Text);
}
Console.ReadKey(); // Pause the console to view output
}
// Import the IronXL library to access its functionality
using IronXL;
static void Main(string[] args)
{
// Access Excel file
WorkBook wb = WorkBook.Load("sample.xlsx");
// Access WorkSheet of Excel file
WorkSheet ws = wb.GetWorkSheet("Sheet1");
// Get a specific cell value, convert it to a string, and print it
string a = ws["A5"].Value.ToString();
Console.WriteLine("Getting Single Value:\n\n Value of Cell A5: {0}", a);
Console.WriteLine("\nGetting Many Cells Value using Loop:\n");
// Get multiple cell values using range function and iterate through them
foreach (var cell in ws["B2:B10"])
{
Console.WriteLine(" Value is: {0}", cell.Text);
}
Console.ReadKey(); // Pause the console to view output
}
' Import the IronXL library to access its functionality
Imports Microsoft.VisualBasic
Imports IronXL
Shared Sub Main(ByVal args() As String)
' Access Excel file
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
' Access WorkSheet of Excel file
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
' Get a specific cell value, convert it to a string, and print it
Dim a As String = ws("A5").Value.ToString()
Console.WriteLine("Getting Single Value:" & vbLf & vbLf & " Value of Cell A5: {0}", a)
Console.WriteLine(vbLf & "Getting Many Cells Value using Loop:" & vbLf)
' Get multiple cell values using range function and iterate through them
For Each cell In ws("B2:B10")
Console.WriteLine(" Value is: {0}", cell.Text)
Next cell
Console.ReadKey() ' Pause the console to view output
End Sub
이 코드는 다음과 같은 결과를 생성합니다:
Excel 파일은 이렇게 보일 것입니다:
우리의 Excel 파일 sample.xlsx은(는) A5 셀에 small business을(를) 가지고 있음을 확인할 수 있습니다. B2부터 B10까지의 다른 값들은 동일하며 출력에 표시됩니다.
데이터셋 및 데이터테이블
이 지침을 사용하여 Excel 파일을 데이터셋 및 데이터테이블로서 다룰 수도 있습니다.
// Access WorkBook and WorkSheet
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
// Convert workbook to DataSet
DataSet ds = wb.ToDataSet();
// Convert worksheet to DataTable
DataTable dt = ws.ToDataTable(true);
// Access WorkBook and WorkSheet
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
// Convert workbook to DataSet
DataSet ds = wb.ToDataSet();
// Convert worksheet to DataTable
DataTable dt = ws.ToDataTable(true);
' Access WorkBook and WorkSheet
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
' Convert workbook to DataSet
Dim ds As DataSet = wb.ToDataSet()
' Convert worksheet to DataTable
Dim dt As DataTable = ws.ToDataTable(True)
Excel 데이터셋 및 데이터테이블과 함께 작업하는 방법에 대해 더 읽으면, 더 많은 코드 예제 및 절차에 대한 설명을 제공합니다.
이제 또 다른 측면을 보겠습니다. 이는 C# 프로젝트에서 새 Excel 파일 생성에 관한 것입니다.
3. 새 Excel 파일 생성
C# 프로젝트에서 새 Excel 스프레드시트를 쉽게 생성하고 프로그래밍적으로 데이터를 삽입할 수 있습니다. 이 작업을 수행하기 위해 IronXL은 새로운 Excel 파일을 생성하는 WorkBook.Create() 함수를 제공합니다.
그런 다음 필요한 만큼 많은 WorkSheets를 WorkBook.CreateWorkSheet() 함수를 사용하여 생성할 수 있습니다.
그 후, 아래 예제에서처럼 데이터를 삽입할 수 있습니다:
// Import the IronXL library
using IronXL;
static void Main(string[] args)
{
// Create a new WorkBook
WorkBook wb = WorkBook.Create();
// Create a new WorkSheet in the workbook
WorkSheet ws = wb.CreateWorkSheet("sheet1");
// Insert data into cells
ws["A1"].Value = "New Value A1";
ws["B2"].Value = "New Value B2";
// Save the newly created Excel file
wb.SaveAs("NewExcelFile.xlsx");
}
// Import the IronXL library
using IronXL;
static void Main(string[] args)
{
// Create a new WorkBook
WorkBook wb = WorkBook.Create();
// Create a new WorkSheet in the workbook
WorkSheet ws = wb.CreateWorkSheet("sheet1");
// Insert data into cells
ws["A1"].Value = "New Value A1";
ws["B2"].Value = "New Value B2";
// Save the newly created Excel file
wb.SaveAs("NewExcelFile.xlsx");
}
' Import the IronXL library
Imports IronXL
Shared Sub Main(ByVal args() As String)
' Create a new WorkBook
Dim wb As WorkBook = WorkBook.Create()
' Create a new WorkSheet in the workbook
Dim ws As WorkSheet = wb.CreateWorkSheet("sheet1")
' Insert data into cells
ws("A1").Value = "New Value A1"
ws("B2").Value = "New Value B2"
' Save the newly created Excel file
wb.SaveAs("NewExcelFile.xlsx")
End Sub
위 코드는 NewExcelFile.xlsx라는 이름의 새 Excel 파일을 생성하고, 셀 주소 A1 및 B2에 각각 New Value A1 및 New Value B2 값을 삽입합니다. 이 설정을 통해 필요한 만큼 동일한 방식으로 데이터를 삽입할 수 있습니다.
참고: 새 Excel 파일을 생성하거나 기존 파일을 수정할 경우, 위의 예제에서 보여준 대로 파일을 저장하는 것을 잊지 마세요.
C#을 사용하여 새 Excel 스프레드시트 생성에 대해 더 깊이 알아보고 프로젝트에서 코드를 사용해 보세요.
4. 기존 Excel 파일 수정
기존 Excel 파일을 수정하고, 프로그래밍적으로 업데이트된 데이터를 삽입할 수 있습니다. Excel 파일 수정에서는 다음과 같은 측면을 보겠습니다:
- 셀 값 업데이트
- 오래된 값을 새 값으로 교체
- 행 또는 열 제거
C# 프로젝트에서 위의 주제를 구현하는 방법을 살펴보겠습니다.
셀 값 업데이트
기존 Excel 스프레드시트의 셀 값을 업데이트하는 것은 매우 간단합니다. 프로젝트에서 Excel 파일에 접근하여 워크시트를 지정한 다음, 아래 예제에서처럼 데이터를 업데이트하세요:
// Import the IronXL library
using IronXL;
static void Main(string[] args)
{
// Access the WorkBook and WorkSheet
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
// Update A3 cell value
ws["A3"].Value = "New Value of A3";
// Save the updated Excel file
wb.SaveAs("sample.xlsx");
}
// Import the IronXL library
using IronXL;
static void Main(string[] args)
{
// Access the WorkBook and WorkSheet
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
// Update A3 cell value
ws["A3"].Value = "New Value of A3";
// Save the updated Excel file
wb.SaveAs("sample.xlsx");
}
' Import the IronXL library
Imports IronXL
Shared Sub Main(ByVal args() As String)
' Access the WorkBook and WorkSheet
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
' Update A3 cell value
ws("A3").Value = "New Value of A3"
' Save the updated Excel file
wb.SaveAs("sample.xlsx")
End Sub
위 코드는 셀 A3의 값을 New Value of A3으로 업데이트합니다.
또한 범위 기능을 사용하여 여러 셀을 정적 값으로 업데이트할 수 있습니다.
ws["A3:C3"].Value = "New Value";
ws["A3:C3"].Value = "New Value";
ws("A3:C3").Value = "New Value"
이는 Excel 파일의 셀 A3부터 C3까지의 3행을 New Value으로 업데이트할 것입니다.
C#의 범위 함수 사용에 대한 자세한 예를 보세요.
셀 값 교체
IronXL의 장점 중 하나는 기존 Excel 파일에서 old values을(를) new values으로 쉽게 바꿀 수 있다는 점이며, 다음의 모든 측면을 포함합니다:
- 전체 워크시트의 값 교체:
ws.Replace("old value", "new value");
ws.Replace("old value", "new value");
ws.Replace("old value", "new value")
- 특정 행의 값 교체:
ws.Rows[RowIndex].Replace("old value", "new value");
ws.Rows[RowIndex].Replace("old value", "new value");
ws.Rows(RowIndex).Replace("old value", "new value")
- 특정 열의 값 교체:
ws.Columns[ColumnIndex].Replace("old value", "new Value");
ws.Columns[ColumnIndex].Replace("old value", "new Value");
ws.Columns(ColumnIndex).Replace("old value", "new Value")
- 특정 범위의 값 교체:
ws["From:To"].Replace("old value", "new value");
ws["From:To"].Replace("old value", "new value");
ws("From:To").Replace("old value", "new value")
위의 기능을 사용하여 C# 프로젝트에서 값을 교체하는 방법을 분명히 이해하기 위한 예제를 봅시다. 이 예제에서는 특정 범위의 값을 교체하기 위해 교체 함수를 사용할 것입니다.
// Import the IronXL library
using IronXL;
static void Main(string[] args)
{
// Access the WorkBook and WorkSheet
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
// Specify a range from B5 to G5 and replace "Normal" value with "Good"
ws["B5:G5"].Replace("Normal", "Good");
// Save the updated Excel file
wb.SaveAs("sample.xlsx");
}
// Import the IronXL library
using IronXL;
static void Main(string[] args)
{
// Access the WorkBook and WorkSheet
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
// Specify a range from B5 to G5 and replace "Normal" value with "Good"
ws["B5:G5"].Replace("Normal", "Good");
// Save the updated Excel file
wb.SaveAs("sample.xlsx");
}
' Import the IronXL library
Imports IronXL
Shared Sub Main(ByVal args() As String)
' Access the WorkBook and WorkSheet
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
' Specify a range from B5 to G5 and replace "Normal" value with "Good"
ws("B5:G5").Replace("Normal", "Good")
' Save the updated Excel file
wb.SaveAs("sample.xlsx")
End Sub
위 코드는 B5부터 G5까지의 Normal 값을 Good으로 바꿀 것이며, WorkSheet의 나머지는 동일하게 유지됩니다. IronXL의 이 기능을 사용하여 범위에서 Excel 셀 값을 편집하는 방법에 대해 더 알아보세요.
Excel 파일의 행 제거
응용 프로그램 개발에서는 때때로 기존 Excel 파일의 전체 행을 프로그래밍 방식으로 제거해야 할 때가 있습니다. 이 작업을 위해 IronXL의 Remove() 함수를 사용합니다. 다음은 예시입니다.
// Import the IronXL library
using IronXL;
static void Main(string[] args)
{
// Access the WorkBook and WorkSheet
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
// Remove the row number 2
ws.Rows[2].Remove();
// Save the updated Excel file
wb.SaveAs("sample.xlsx");
}
// Import the IronXL library
using IronXL;
static void Main(string[] args)
{
// Access the WorkBook and WorkSheet
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
// Remove the row number 2
ws.Rows[2].Remove();
// Save the updated Excel file
wb.SaveAs("sample.xlsx");
}
' Import the IronXL library
Imports IronXL
Shared Sub Main(ByVal args() As String)
' Access the WorkBook and WorkSheet
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
' Remove the row number 2
ws.Rows(2).Remove()
' Save the updated Excel file
wb.SaveAs("sample.xlsx")
End Sub
위 코드는 sample.xlsx의 2행을 제거할 것입니다.
튜토리얼 바로가기
IronXL의 모든 함수, 기능, 클래스와 네임스페이스에 대한 자세한 내용을 보려면 API 레퍼런스를 읽으세요.
IronXL 참조자주 묻는 질문
Interop을 사용하지 않고 C#에서 Excel 파일을 읽는 방법은 무엇인가요?
Interop 없이도 IronXL을 사용하여 C#에서 Excel 파일을 읽을 수 있습니다. WorkBook.Load() 함수를 사용하여 파일을 로드하고 WorkBook.GetWorkSheet() 를 사용하여 워크시트에 액세스하십시오.
C# 프로그램을 사용하여 새 Excel 파일을 생성하는 과정은 무엇입니까?
IronXL을 사용하면 WorkBook.Create() 메서드를 사용하여 새 Excel 파일을 만들고 WorkSheet.CreateWorkSheet() 사용하여 데이터를 추가할 수 있습니다.
Interop을 사용하지 않고 C#에서 Excel 파일을 수정하는 것이 가능할까요?
예, IronXL은 셀 값을 업데이트하거나, 기존 값을 바꾸거나, 행이나 열을 직접 삭제하는 등 Interop 없이도 Excel 파일을 수정할 수 있는 기능을 제공합니다.
IronXL을 사용하여 엑셀 시트의 특정 셀 값을 업데이트하는 방법은 무엇입니까?
셀 값을 업데이트하려면 WorkBook.GetWorkSheet() 를 사용하여 워크시트를 불러온 다음 셀에 새 값을 할당하고 변경 사항을 저장하세요.
IronXL을 사용하여 특정 셀 범위의 값을 바꿀 수 있습니까?
IronXL을 사용하면 워크시트 또는 특정 범위 개체에 Replace() 함수를 적용하여 범위 내 값을 바꿀 수 있습니다.
IronXL을 Microsoft.Office.Interop.Excel 대신 사용하는 것의 장점은 무엇입니까?
IronXL은 사용하기 쉬운 API를 제공하여 Excel 파일 조작을 간소화하고, 복잡한 상호 운용 코드의 필요성을 줄이며, 더 나은 성능과 안정성을 제공합니다.
IronXL을 사용하여 엑셀 파일에서 행을 삭제하는 방법은 무엇입니까?
IronXL에서 행을 제거하려면 워크시트 내의 지정된 행 개체에 Remove() 함수를 사용하십시오.
IronXL은 Excel 파일을 DataSet 및 DataTable로 변환하는 기능을 지원합니까?
네, IronXL은 통합 문서를 데이터세트로, 워크시트를 데이터테이블로 변환하는 기능을 지원하여 더욱 유연한 데이터 조작이 가능합니다.
C# 프로젝트에 IronXL을 설치하는 방법은 무엇인가요?
IronXL을 C# 프로젝트에 설치하려면 Iron Software 웹사이트에서 다운로드하거나 NuGet 패키지 관리자를 사용하여 다음 명령을 실행하면 됩니다. Install-Package IronXL.Excel .
IronXL은 대용량 Excel 파일에 적합한가요?
IronXL은 대용량 Excel 파일을 효율적으로 처리하도록 최적화되어 있어 기존 Interop 방식에 비해 빠른 처리 속도와 최소한의 메모리 사용량을 제공합니다.



