C#을 사용하여 Blazor에서 Excel 파일을 읽는 방법

Blazor Read Excel File in C# Using IronXL (Example Tutorial)

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

소개

Blazor는 Microsoft에서 만든 오픈 소스 .NET 웹 프레임워크입니다. Blazor 응용 프로그램은 C# 코드를 브라우저 호환 JavaScript 및 HTML로 컴파일하여 작동합니다. 이 튜토리얼에서는 IronXL C# 라이브러리를 사용하여 Blazor 서버 사이드 응용 프로그램에서 Excel 문서/워크시트를 읽는 가장 쉽고 최선의 방법에 대한 지식을 공유하겠습니다.

Demonstration of IronXL Viewing Excel in Blazor

IronXL로 시작해 보세요


1단계 - Visual Studio에서 Blazor 프로젝트 생성하기

다음 데이터를 포함하는 XLSX 파일이 있으며, 이를 Blazor 서버 앱에서 읽고 열겠습니다:

입력 XLSX Excel 시트 Blazor 서버 브라우저의 결과
이름 ID
애플스미스 1
리처드 스미스 2
셰리 로빈스 3
Browser View related to 1단계 - Visual Studio에서 Blazor 프로젝트 생성하기

Visual Studio IDE에서 Blazor 프로젝트를 생성하는 것으로 시작하십시오:

New Project related to 1단계 - Visual Studio에서 Blazor 프로젝트 생성하기

프로젝트 유형 선택: Blazor Server App

Choose Blazor Project Type related to 1단계 - Visual Studio에서 Blazor 프로젝트 생성하기

해당 솔루션을 변경하지 않고 F5 키로 애플리케이션을 실행하세요. 다음과 같이 애플리케이션의 Fetch data 탭으로 이동하세요:

First Run related to 1단계 - Visual Studio에서 Blazor 프로젝트 생성하기

우리의 목표는 업로드 버튼을 사용하여 우리의 Excel 파일을 Blazor 앱에 로드하고 이 페이지에 표시하는 것입니다.

2단계 - IronXL을 솔루션에 추가하기

IronXL: .NET Excel 라이브러리 (설치 지침):

IronXL은 Microsoft Excel의 스프레드시트를 객체처럼 취급하여 개발자가 C# 및 .NET Framework의 전체 기능을 활용해 데이터 스트림을 조작할 수 있게 하는 .NET 라이브러리입니다. 개발자로서 우리는 응용 프로그램이나 데이터베이스에 Excel 문서/워크시트의 모든 행의 셀과 열 정보를 얻을 수 있는 좋은 방법을 원합니다.

IronXL을 사용하면 셀 값, 셀의 내용, 이미지, 참조, 형식 등 워크시트에서 모든 종류의 정보를 얻을 수 있습니다. IronXL은 여러 면에서 NPOI보다 뛰어납니다. IronXL은 더 많은 기능을 제공하고 복잡한 로직 작성이 더 쉽습니다. 또한 더 선호되는 라이센스를 가지고 있으며 지원 팀도 더 유능합니다.

IronXL은 모든 최신 .NET 버전(8, 7, 6) 및 .NET Core Framework 4.6.2+를 지원합니다.

아래 방법 중 하나를 사용하여 솔루션에 IronXL을 추가한 후 솔루션을 빌드하십시오.

옵션 2A - NuGet 패키지 관리자 사용

Install-Package IronXl.Excel

옵션 2B - csproj 파일에 PackageReference 추가

IronXL을 프로젝트에 직접 추가하려면 솔루션의 .csproj 파일에서 <ItemGroup>에 다음 줄을 추가하세요:

<PackageReference Include="IronXl.Excel" Version="*" />
<PackageReference Include="IronXl.Excel" Version="*" />
XML

Visual Studio에서 다음과 같이 표시됩니다:

Add Ironxl Csproj related to 옵션 2B - csproj 파일에 PackageReference 추가

3단계 - 파일 업로드 및 보기 코딩하기

Visual Studio 솔루션 뷰에서 Pages/ 폴더로 이동하여 FetchData.razor 파일을 찾으세요. 다른 razor 파일을 사용할 수도 있지만, Blazor 서버 앱 템플릿에 포함되어 있기 때문에 이 파일을 사용하겠습니다.

파일 내용을 다음 코드로 교체하십시오:

@using IronXL;
@using System.Data;

@page "/fetchdata"

<PageTitle>Excel File Viewer</PageTitle>

<h1>Open Excel File to View</h1>

<InputFile OnChange="@OpenExcelFileFromDisk" />

<table>
    <thead>
        <tr>
            @foreach (DataColumn column in displayDataTable.Columns)
            {
                <th>
                    @column.ColumnName
                </th>
            }
        </tr>
    </thead>
    <tbody>
        @foreach (DataRow row in displayDataTable.Rows)
        {
            <tr>
                @foreach (DataColumn column in displayDataTable.Columns)
                {
                    <td>
                        @row[column.ColumnName].ToString()
                    </td>
                }
            </tr>
        }
    </tbody>
</table>

@code {
    // Create a DataTable instance
    private DataTable displayDataTable = new DataTable();

    // This method is triggered when a file is uploaded
    async Task OpenExcelFileFromDisk(InputFileChangeEventArgs e)
    {
        IronXl.License.LicenseKey = "PASTE TRIAL OR LICENSE KEY";

        // Load the uploaded file into a MemoryStream
        MemoryStream ms = new MemoryStream();

        await e.File.OpenReadStream().CopyToAsync(ms);
        ms.Position = 0;

        // Create an IronXL workbook from the MemoryStream
        WorkBook loadedWorkBook = WorkBook.FromStream(ms);
        WorkSheet loadedWorkSheet = loadedWorkBook.DefaultWorkSheet; // Or use .GetWorkSheet()

        // Add header Columns to the DataTable
        RangeRow headerRow = loadedWorkSheet.GetRow(0);
        for (int col = 0; col < loadedWorkSheet.ColumnCount; col++)
        {
            displayDataTable.Columns.Add(headerRow.ElementAt(col).ToString());
        }

        // Populate the DataTable with data from the Excel sheet
        for (int row = 1; row < loadedWorkSheet.RowCount; row++)
        {
            IEnumerable<string> excelRow = loadedWorkSheet.GetRow(row).ToArray().Select(c => c.ToString());
            displayDataTable.Rows.Add(excelRow.ToArray());
        }
    }
}
@using IronXL;
@using System.Data;

@page "/fetchdata"

<PageTitle>Excel File Viewer</PageTitle>

<h1>Open Excel File to View</h1>

<InputFile OnChange="@OpenExcelFileFromDisk" />

<table>
    <thead>
        <tr>
            @foreach (DataColumn column in displayDataTable.Columns)
            {
                <th>
                    @column.ColumnName
                </th>
            }
        </tr>
    </thead>
    <tbody>
        @foreach (DataRow row in displayDataTable.Rows)
        {
            <tr>
                @foreach (DataColumn column in displayDataTable.Columns)
                {
                    <td>
                        @row[column.ColumnName].ToString()
                    </td>
                }
            </tr>
        }
    </tbody>
</table>

@code {
    // Create a DataTable instance
    private DataTable displayDataTable = new DataTable();

    // This method is triggered when a file is uploaded
    async Task OpenExcelFileFromDisk(InputFileChangeEventArgs e)
    {
        IronXl.License.LicenseKey = "PASTE TRIAL OR LICENSE KEY";

        // Load the uploaded file into a MemoryStream
        MemoryStream ms = new MemoryStream();

        await e.File.OpenReadStream().CopyToAsync(ms);
        ms.Position = 0;

        // Create an IronXL workbook from the MemoryStream
        WorkBook loadedWorkBook = WorkBook.FromStream(ms);
        WorkSheet loadedWorkSheet = loadedWorkBook.DefaultWorkSheet; // Or use .GetWorkSheet()

        // Add header Columns to the DataTable
        RangeRow headerRow = loadedWorkSheet.GetRow(0);
        for (int col = 0; col < loadedWorkSheet.ColumnCount; col++)
        {
            displayDataTable.Columns.Add(headerRow.ElementAt(col).ToString());
        }

        // Populate the DataTable with data from the Excel sheet
        for (int row = 1; row < loadedWorkSheet.RowCount; row++)
        {
            IEnumerable<string> excelRow = loadedWorkSheet.GetRow(row).ToArray().Select(c => c.ToString());
            displayDataTable.Rows.Add(excelRow.ToArray());
        }
    }
}
$vbLabelText   $csharpLabel

요약

<InputFile> 구성 요소는 이 웹페이지에서 파일을 업로드할 수 있게 해줍니다. 호출된 이벤트 콜백을 OpenExcelFileFromDisk를 호출하도록 설정하였으며, 이는 하단의 @code 블록 내 비동기 메서드입니다. HTML은 Excel 시트를 탭에 테이블로 렌더링합니다.

IronXl.Excel은 다양한 스프레드시트 형식을 읽기 위한 독립형 .NET 소프트웨어 라이브러리입니다. Microsoft Excel이 설치될 필요가 없으며 Interop에 의존하지 않습니다.


추가 자료

Documentation related to 추가 자료
### API 참조를 확인하세요.

IronXL의 API 참조를 탐색하여 IronXL의 모든 기능, 네임스페이스, 클래스, 메소드 필드 및 열거형의 세부 사항을 설명합니다.

API 참조를 확인하세요.

소프트웨어 제품 다운로드

자주 묻는 질문

Blazor 서버 측 애플리케이션에서 Excel 파일을 읽으려면 어떻게 해야 하나요?

Blazor 서버 측 애플리케이션에서 Excel 파일을 읽으려면 IronXL C# 라이브러리를 사용할 수 있습니다. NuGet 패키지 관리자를 사용하여 라이브러리를 설치하고 Excel 데이터를 읽고 표시하는 코드를 구현하면 Blazor 프로젝트에 쉽게 통합할 수 있습니다.

Blazor 프로젝트에서 엑셀 파일을 읽도록 설정하는 단계는 무엇인가요?

먼저 NuGet 패키지 관리자를 통해 IronXL을 설치합니다. 다음으로 Blazor 애플리케이션에 파일 업로드 버튼을 생성합니다. IronXL을 사용하여 업로드된 Excel 파일을 읽고 Razor 컴포넌트를 이용하여 데이터를 표 형식으로 표시하도록 앱을 구성합니다.

Excel이 설치되어 있지 않은 Blazor 애플리케이션에서 Excel 파일을 읽을 수 있을까요?

네, IronXL을 사용하면 시스템에 Microsoft Excel이 설치되어 있지 않아도 Blazor 애플리케이션에서 Excel 파일을 읽고 조작할 수 있습니다.

Blazor 애플리케이션에서 엑셀 데이터를 어떻게 표시할 수 있나요?

IronXL을 사용하여 Excel 파일을 읽은 후에는 Blazor 애플리케이션에서 Razor 컴포넌트를 사용하여 데이터를 표 형식으로 표시함으로써 사용자 인터페이스를 향상시킬 수 있습니다.

IronXL은 다른 Excel 라이브러리에 비해 어떤 이점을 제공합니까?

IronXL은 광범위한 기능, 복잡한 로직 처리의 용이성, 우수한 라이선스 조건 및 전담 지원을 제공하므로 NPOI와 같은 대안보다 선호되는 선택입니다.

IronXL은 Excel 파일 처리를 위해 어떤 .NET 버전을 지원합니까?

IronXL은 .NET 8, 7, 6을 비롯한 모든 최신 버전과 .NET Core Framework 4.6.2 이상을 지원하여 최신 애플리케이션과의 폭넓은 호환성을 보장합니다.

Excel 라이브러리를 Blazor 프로젝트에 통합하는 방법은 무엇인가요?

IronXL과 같은 Excel 라이브러리를 Blazor 프로젝트에 통합하려면 NuGet 패키지 관리자에서 ` dotnet add package IronXl.Excel 명령어를 사용하거나 .csproj 파일에 PackageReference 추가하면 됩니다.

Blazor 앱이 Excel 파일을 읽지 못하는 경우 어떤 문제 해결 단계를 취할 수 있나요?

IronXL이 NuGet을 통해 올바르게 설치되었는지, 그리고 Blazor 앱에 디스크에서 파일을 읽을 수 있는 필요한 권한이 있는지 확인하십시오. Excel 파일 경로가 올바른지, 그리고 파일 형식이 IronXL에서 지원되는 형식인지 다시 한번 확인하십시오.

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

커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, 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/Getstarted.php
Line: 25
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/Getstarted.php
Line: 25
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/get-started/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/Getstarted.php
Line: 25
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/get-started/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/Getstarted.php
Line: 25
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

Still Scrolling Icon

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

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