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

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와 호환됩니다.

사전 요구 사항

코드에 들어가기 전에 다음을 확인하세요:

  1. .NET Core 3.1 이상이 설치되어 있어야 합니다.
  2. .NET 개발에 적합한 IDE (Microsoft Visual Studio를 권장합니다).
  3. ASP.NET Core 및 Razor Pages에 대한 기본 이해.

새 .NET Core 프로젝트 만들기

  1. Microsoft Visual Studio를 열고 '새 프로젝트 만들기'를 선택합니다.
  2. 프로젝트 템플릿 목록에서 'ASP.NET Core Web App'을 선택하고 '다음'을 클릭합니다.
  3. 프로젝트 이름을 제공하고 예를 들어 'Open_ExcelFile.NET_Core'와 같이 위치를 선택한 후 '다음'을 클릭합니다.
  4. 대상 프레임워크로 '.NET Core'를 선택하고 'ASP.NET Core 3.1 이상'를 버전으로 선택합니다. '프로젝트 템플릿' 섹션에서 '웹 애플리케이션'을 선택하고 '생성'을 클릭합니다.

IronXL Install-Package

다음 단계는 이 새로 만든 프로젝트에 IronXL 패키지를 설치하는 것입니다:

  1. 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 'NuGet 패키지 관리'를 선택합니다.
  2. '탐색' 탭에서 'IronXL'을 검색한 후 IronXl.Excel 패키지를 설치하도록 클릭합니다.

    ASP .NET Core에서 Excel 파일을 여는 방법, 그림 1: NuGet 패키지 관리자 UI에서 IronXL 패키지를 검색하고 설치 NuGet 패키지 관리자 UI에서 IronXL 패키지를 검색하고 설치

  3. 패키지가 설치되기를 기다립니다.

이제 여러분의 ASP.NET Core 프로젝트가 설정되었고, IronXL 라이브러리가 설치되어 사용 준비가 되었습니다.

Razor 페이지 생성

이제 Excel 파일을 여는 코드를 작성하기 위해 Razor 페이지를 생성해보겠습니다.

  1. 솔루션 탐색기에서 'Pages' 폴더를 마우스 오른쪽 버튼으로 클릭하고 '추가' > 'Razor 페이지'를 선택합니다.
  2. 페이지 이름에 'ExcelOpener'을 입력하고 '추가'를 클릭합니다.

    ASP .NET Core에서 Excel 파일을 여는 방법, 그림 2: 새 Razor 페이지 생성 새로운 Razor 페이지 만들기

이는 두 개의 파일을 생성합니다: ExcelOpener.cshtmlExcelOpener.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 List<List<string>> Data { get; set; }

public ExcelOpenerModel()
{
    Data = new List<List<string>>();
}
$vbLabelText   $csharpLabel

OnGet 메서드에서는 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 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);
    }
}
$vbLabelText   $csharpLabel

핵심 메서드 설명

  • WorkBook.Load(filepath): 이 메서드는 지정된 파일 경로에서 Excel 문서를 로드합니다. 엑셀 시트를 로드하고 읽는 데 도움을 줍니다.
  • workbook.DefaultWorkSheet: 이 속성은 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 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);
    }
}
$vbLabelText   $csharpLabel

핵심 메서드 설명

  • 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">

        @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]" /> 
                    </td>
                }
            </tr>
        }
    </table>

    <input type="submit" class="btn btn-primary" value="Save" /> 
</form>
@page
@model Open_Excel_File_.NET_Core.Pages.ExcelOpenerModel

<form method="post">
    <table class="table table-bordered table-striped">

        @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]" /> 
                    </td>
                }
            </tr>
        }
    </table>

    <input type="submit" class="btn btn-primary" value="Save" /> 
</form>
HTML

페이지로 이동하기

_Layout.cshtml에 페이지로의 링크가 탐색 메뉴에 추가됩니다. 이 링크를 클릭하면 Excel 오프너 페이지로 이동합니다.

<li class="nav-item">
    <a class="nav-link text-dark" asp-area="" asp-page="/ExcelOpener">ExcelOpener</a>
</li>
<li class="nav-item">
    <a class="nav-link text-dark" asp-area="" asp-page="/ExcelOpener">ExcelOpener</a>
</li>
HTML

애플리케이션 실행 및 출력 설명

Visual Studio에서 'Build' 버튼을 클릭하거나 Ctrl + Shift + B 바로 가기를 사용하여 애플리케이션을 빌드하세요. F5 키를 누르거나 Visual Studio에서 "Start" 버튼을 클릭하여 애플리케이션을 실행합니다.

애플리케이션이 실행되면 네비게이션 바의 해당 링크를 클릭하여 "ExcelOpener" 페이지로 이동합니다. 페이지는 Excel의 데이터를 표 형식으로 표시합니다.

표의 데이터를 수정하고 "Save" 버튼을 클릭하여 변경 내용을 Excel 파일에 다시 저장할 수 있습니다.

![ASP .NET Core에서 Excel 파일을 여는 방법, 그림 3: 웹 애플리케이션에서 Excel 데이터 표시](/static-assets/excel/blog/asp-net-core-open-excel-file-tutorial/asp-net-core-open-excel-file-tutorial-3.webp)

웹 애플리케이션에서 Excel 데이터 표시

이 튜토리얼은 ASP.NET Core 애플리케이션에서 IronXL을 사용하여 Excel 파일을 여는 방법을 시연했습니다. IronXL은 Excel 파일을 읽고 조작하는 데 간편하고 편리한 방법을 제공합니다. 더 많은 고급 기능과 기능성을 위해 IronXL 문서를 탐색할 수 있습니다.

IronXL은 무료 체험판을 제공하여 기능을 평가할 수 있습니다. 프로젝트에 유용하다고 판단되면 $799부터 라이선스를 구매할 수 있습니다.

자주 묻는 질문

ASP.NET Core 애플리케이션에서 Excel 파일을 어떻게 열 수 있나요?

IronXL 라이브러리를 사용하면 ASP.NET Core 애플리케이션에서 Excel 파일을 열 수 있습니다. 먼저 NuGet 통해 IronXL 패키지를 설치한 다음, WorkBook.Load 사용하여 Excel 파일을 불러오세요. 워크시트를 선택하고 행과 열을 순회하면서 데이터에 접근할 수 있습니다.

Excel 파일 조작 시 Office Interop 대신 IronXL 사용하는 것의 장점은 무엇입니까?

IronXL 사용하면 Microsoft Excel이나 Office Interop에 대한 종속성 없이 Excel 파일을 작업할 수 있으므로 Microsoft Office를 설치할 수 없는 서버 환경에 이상적입니다. .NET Framework 와 .NET Core 모두 지원하며 .XLS 및 .XLSX 형식을 모두 처리합니다.

Razor Pages를 사용하여 웹 애플리케이션에 Excel 데이터를 표시하려면 어떻게 해야 하나요?

웹 애플리케이션에 Excel 데이터를 표시하려면 IronXL 사용하여 Excel 데이터를 로드하고 읽는 Razor 페이지를 만들 수 있습니다. HTML 폼을 사용하여 각 셀의 데이터를 텍스트 입력 필드에 렌더링하면 사용자가 웹 인터페이스 내에서 데이터를 보고 편집할 수 있습니다.

Excel 작업을 위한 ASP.NET Core 프로젝트를 설정하는 데 필요한 사항은 무엇입니까?

Excel 작업을 위한 ASP.NET Core 프로젝트를 설정하려면 .NET Core 3.1 이상, Microsoft Visual Studio와 같은 IDE, 그리고 ASP.NET Core 및 Razor Pages에 대한 기본적인 이해가 필요합니다. Excel 파일 작업을 시작하려면 NuGet 에서 IronXL 패키지를 설치하세요.

ASP.NET Core 에서 Excel 파일을 편집하고 변경 사항을 저장하려면 어떻게 해야 하나요?

Razor 페이지의 HTML 폼을 통해 사용자가 데이터를 수정할 수 있도록 하면 Excel 파일을 편집하고 변경 내용을 저장할 수 있습니다. sheet.SetCellValue 와 같은 IronXL 메서드를 사용하여 데이터를 업데이트하고, workbook.SaveAs 사용하여 수정된 Excel 파일을 저장하세요.

엑셀 파일 작업을 위한 Razor 페이지를 설정하는 데에는 어떤 단계가 포함되나요?

Razor 페이지를 설정하려면 ASP.NET Core 프로젝트에 새 Razor 페이지를 생성해야 합니다. 이 Razor 페이지를 사용하여 IronXL 로 Excel 데이터를 불러와 웹 폼에 표시하고, 폼 제출을 처리하여 변경 사항을 Excel 파일에 저장할 수 있습니다.

ASP.NET Core 에서 Excel 파일이 로드되지 않을 경우 어떻게 문제를 해결해야 하나요?

Excel 파일이 로드되지 않으면 파일 경로가 올바르고 애플리케이션에서 접근 가능한지 확인하십시오. IronXL 이 올바르게 설치되었는지, 파일 형식이 지원되는지 확인하십시오. 문제의 원인을 파악하는 데 도움이 될 수 있는 예외 또는 오류 메시지가 있는지 확인하십시오.

구매하기 전에 IronXL 라이브러리를 사용해 볼 수 있나요?

네, IronXL 기능을 평가해 볼 수 있는 무료 평가판을 제공합니다. 이 평가판을 사용하여 라이선스 구매를 결정하기 전에 필요한 기능을 모두 갖추고 있는지 확인할 수 있습니다.

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

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

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

Iron Support Team

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