
ASP.NET .NET Core 에서 Excel 파일을 여는 방법
이 튜토리얼은 IronXL 라이브러리를 사용하여 ASP.NET Core 애플리케이션에서 Excel 파일을 여는 방법을 보여줄 것입니다. Excel 파일을 읽는 기본 단계를 다루고, 데이터 표시 및 수정된 데이터를 다시 파일로 저장하는 방법을 설명할 것입니다.
IronXL이란 무엇인가요?
IronXL은 Microsoft Excel 또는 Office Interop 종속성이 필요하지 않고 Excel 문서 작업 기능을 제공하는 .NET Excel 라이브러리입니다. 이것은 .NET Framework와 .NET Core 모두를 지원하며, 몇 줄의 코드만으로 Excel 파일을 작성하고, 조작하며, 읽을 수 있는 기능을 제공합니다. Excel 파일 읽기에 대한 자세한 튜토리얼은 이 Excel 튜토리얼을 참조하세요.
IronXL 라이브러리는 Excel 문서를 읽고 쓰며, 데이터 추출 및 조작 그리고 새 Excel 파일을 처음부터 생성할 수 있습니다. IronXL은 .XLS 형식뿐 아니라, Microsoft's XML 기반 스프레드시트 표현 파일 형식인 .XLSX와 호환됩니다.
사전 요구 사항
코드에 들어가기 전에, 다음을 확인하십시오:
- .NET Core 3.1 이상이 설치되어 있어야 합니다.
- .NET 개발에 적합한 IDE (Microsoft Visual Studio를 권장합니다).
- ASP.NET Core 및 Razor Pages에 대한 기본 이해.
새 .NET Core 프로젝트 만들기
- Microsoft Visual Studio를 열고 '새 프로젝트 만들기'를 선택합니다.
- 프로젝트 템플릿 목록에서 'ASP.NET Core Web App'을 선택하고 '다음'을 클릭합니다.
- 프로젝트 이름을 제공하고 예를 들어 'Open_Excel_File_.NET_Core'와 같이 위치를 선택한 후 '다음'을 클릭합니다.
- 대상 프레임워크로 '.NET Core'를 선택하고 'ASP.NET Core 3.1 이상'를 버전으로 선택합니다. '프로젝트 템플릿' 섹션에서 '웹 애플리케이션'을 선택하고 '생성'을 클릭합니다.
IronXL Install-Package
다음 단계는 이 새로 만든 프로젝트에 IronXL 패키지를 설치하는 것입니다:
- 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 'NuGet 패키지 관리'를 선택합니다.
- '탐색' 탭에서 'IronXL'을 검색한 후 IronXL.Excel 패키지를 설치하도록 클릭합니다.
NuGet 패키지 관리자 UI에서 IronXL 패키지를 검색하고 설치
- 패키지가 설치되기를 기다립니다.
이제 여러분의 ASP.NET Core 프로젝트가 설정되었고, IronXL 라이브러리가 설치되어 사용 준비가 되었습니다.
Razor 페이지 생성
이제 Excel 파일을 여는 코드를 작성하기 위해 Razor 페이지를 생성해보겠습니다.
- 솔루션 탐색기에서 'Pages' 폴더를 마우스 오른쪽 버튼으로 클릭하고 '추가' > 'Razor 페이지'를 선택합니다.
- 페이지 이름에 'ExcelOpener'을 입력하고 '추가'를 클릭합니다.
새로운 Razor 페이지 만들기
이는 두 개의 파일을 생성합니다: ExcelOpener.cshtml 및 ExcelOpener.cshtml.cs.
ExcelOpener.cshtml 파일은 페이지에 대한 HTML 마크업을 포함하고 있으며, ExcelOpener.cshtml.cs 파일은 페이지에 대한 C# 코드 비하인드를 포함하고 있습니다.
Excel 파일 읽기
코드로 들어가 봅시다. 제공된 ExcelOpenerModel 클래스는 Razor 페이지 모델입니다. 이 클래스에는 Excel 파일에서 읽은 데이터를 저장하는데 사용될 List<List<string>> 속성 Data이 있습니다.
public List<List<string>> Data { get; set; }
public ExcelOpenerModel()
{
Data = new List<List<string>>();
}Public Property Data() As List(Of List(Of String))
'INSTANT VB WARNING: The following constructor is declared outside of its associated class:
'ORIGINAL LINE: public ExcelOpenerModel()
Public Sub New()
Data = New List(Of List(Of String))()
End SubOnGet 메서드에서 IronXL을 사용하여 Excel 파일을 로드하고 기본 워크시트(워크북의 첫 번째 시트)의 데이터를 읽습니다. 각 행은 List<string>로 나타내며, 이러한 모든 목록들은 Data 속성에 추가됩니다.
public void OnGet()
{
try
{
Data = new List<List<string>>();
// Load your Excel file
var workbook = WorkBook.Load(@"C:\Users\Administrator\Documents\Loan.xlsx");
// Select your Worksheet
WorkSheet sheet = workbook.DefaultWorkSheet;
for (int i = 0; i < sheet.RowCount; i++)
{
var row = new List<string>();
for (int j = 0; j < sheet.ColumnCount; j++)
{
row.Add(sheet.GetCellAt(i, j).Value.ToString());
}
Data.Add(row);
}
}
catch (Exception ex)
{
// Handle exceptions here
Console.WriteLine(ex.Message);
}
}Public Sub OnGet()
Try
Data = New List(Of List(Of String))()
' Load your Excel file
Dim workbook = WorkBook.Load("C:\Users\Administrator\Documents\Loan.xlsx")
' Select your Worksheet
Dim sheet As WorkSheet = workbook.DefaultWorkSheet
For i As Integer = 0 To sheet.RowCount - 1
Dim row = New List(Of String)()
For j As Integer = 0 To sheet.ColumnCount - 1
row.Add(sheet.GetCellAt(i, j).Value.ToString())
Next j
Data.Add(row)
Next i
Catch ex As Exception
' Handle exceptions here
Console.WriteLine(ex.Message)
End Try
End Sub핵심 메서드 설명
WorkBook.Load(filepath): 이 메서드는 지정된 파일 경로에서 Excel 문서를 로드합니다. 엑셀 시트를 로드하고 읽는 데 도움을 줍니다.workbook.DefaultWorkSheet: 이 속성은 Excel 스프레드시트의 기본(첫 번째) Excel 워크시트를 가져옵니다.sheet.GetCellAt(i, j).Value.ToString(): 이는 지정된 행과 열 인덱스에 있는 셀을 가져오고, 그 값을 문자열로 변환합니다. 이는 행 및 열 인덱스를 기반으로 Excel 파일 내의 특정 셀 또는 범위에 액세스할 수 있는 인덱스 메서드의 예입니다.
간략한 설명
ExcelOpener.cshtml.cs 파일에서 ExcelOpenerModel라는 클래스가 Razor 페이지 모델을 나타냅니다. Excel 파일 데이터를 보관할 List<List<string>> 타입의 Data 속성을 포함합니다.
페이지가 요청될 때 호출되는 OnGet 메서드는 Excel 파일의 데이터를 읽는 역할을 합니다. 이는 IronXL을 사용하여 Excel 파일을 로드하고, 기본 워크시트를 선택하여 Data 속성을 채우기 위해 행과 열을 반복합니다.
Excel 파일 쓰기
ExcelOpenerModel 클래스의 OnPost 메서드는 Excel 파일에 대한 수정 사항을 저장하는 데 사용됩니다. 이 메서드는 먼저 Excel 파일을 로드하고 기본 워크시트를 검색합니다. 그런 다음 Data에서 값을 워크시트의 셀에 쓰고, 새 파일에 워크북을 저장합니다.
public void OnPost()
{
try
{
// Load your Excel file
var workbook = WorkBook.Load(@"C:\Users\Administrator\Documents\Loan.xlsx");
// Select your Worksheet
var sheet = workbook.DefaultWorkSheet;
for (int i = 0; i < Data.Count; i++)
{
for (int j = 0; j < Data[i].Count; j++)
{
sheet.SetCellValue(i, j, Data[i][j]);
}
}
// Save the Excel file
var filename = @"C:\ModifiedData.xlsx";
workbook.SaveAs(filename);
}
catch (Exception ex)
{
// Handle exceptions here
Console.WriteLine(ex.Message);
}
}Public Sub OnPost()
Try
' Load your Excel file
Dim workbook = WorkBook.Load("C:\Users\Administrator\Documents\Loan.xlsx")
' Select your Worksheet
Dim sheet = workbook.DefaultWorkSheet
For i As Integer = 0 To Data.Count - 1
Dim j As Integer = 0
Do While j < Data(i).Count
sheet.SetCellValue(i, j, Data(i)(j))
j += 1
Loop
Next i
' Save the Excel file
Dim filename = "C:\ModifiedData.xlsx"
workbook.SaveAs(filename)
Catch ex As Exception
' Handle exceptions here
Console.WriteLine(ex.Message)
End Try
End Sub핵심 메서드 설명
sheet.SetCellValue(i, j, Data[i][j]): 이 메서드는 지정된 행과 열 인덱스에 있는 셀의 값을 설정합니다.workbook.SaveAs(filepath): 이 메서드는 Excel 워크북을 지정된 파일 경로에 저장합니다.
간략한 설명
폼이 제출되면 호출되는 OnPost 메서드는 수정된 데이터를 다시 Excel 파일에 저장합니다. 이 메서드는 Excel 파일을 로드하고, 기본 워크시트를 선택하며, 폼으로부터 받은 수정된 데이터를 기반으로 셀 값을 업데이트합니다.
Excel 데이터 편집을 위한 HTML 폼
ExcelOpener.cshtml에서 Excel 파일의 데이터를 표시하고 편집하기 위한 폼이 정의됩니다. 각 셀 값은 텍스트 입력 필드에 표시됩니다. 편집 후 '저장' 버튼을 클릭하면 폼이 제출되고, OnPost 메서드가 트리거되어 Excel 파일에 변경 사항을 저장합니다.
@page
@model Open_Excel_File_.NET_Core.Pages.ExcelOpenerModel
<form method="post">
<table class="table table-bordered table-striped">
<!-- Bootstrap classes for tables -->
@for (int i = 0; i < Model.Data.Count; i++)
{
<tr>
@for (int j = 0; j < Model.Data[i].Count; j++)
{
<td>
<input type="text" class="form-control" name="Data[@i][@j]" value="@Model.Data[i][j]" /> <!-- Bootstrap class for form controls -->
</td>
}
</tr>
}
</table>
<input type="submit" class="btn btn-primary" value="Save" /> <!-- Bootstrap classes for buttons -->
</form>
페이지로 이동하기
_Layout.cshtml에 페이지로의 링크가 탐색 메뉴에 추가됩니다. 이 링크를 클릭하면 Excel 오프너 페이지로 이동합니다.
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/ExcelOpener">ExcelOpener</a>
</li>
애플리케이션 실행 및 출력 설명
Visual Studio에서 'Build' 버튼을 클릭하거나 Ctrl + Shift + B 단축키를 사용하여 애플리케이션을 빌드합니다. F5 키를 누르거나 Visual Studio에서 "Start" 버튼을 클릭하여 애플리케이션을 실행합니다.
애플리케이션이 실행되면 네비게이션 바의 해당 링크를 클릭하여 "ExcelOpener" 페이지로 이동합니다. 페이지는 Excel의 데이터를 표 형식으로 표시합니다.
표의 데이터를 수정하고 "Save" 버튼을 클릭하여 변경 내용을 Excel 파일에 다시 저장할 수 있습니다.
웹 애플리케이션에서 Excel 데이터 표시
이 튜토리얼은 ASP.NET Core 애플리케이션에서 IronXL을 사용하여 Excel 파일을 여는 방법을 시연했습니다. IronXL은 Excel 파일을 읽고 조작하는 데 간편하고 편리한 방법을 제공합니다. 더 많은 고급 기능과 기능성을 위해 IronXL 문서를 탐색할 수 있습니다.
IronXL은 무료 체험판을 제공하여 기능을 평가할 수 있습니다. 프로젝트에 유용하다고 느끼시면 $999부터 시작하여 라이선스를 구매할 수 있습니다.

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



