IRONXLの使用

ASP .NET CoreでExcelファイルを開く方法

更新済み 7月 22, 2023
共有:

このチュートリアルでは、IronXLライブラリを使用してASP.NET CoreアプリケーションでExcelファイルを開く方法を示します。 Excelファイルを読み取り、そこからデータを表示し、変更されたデータをファイルに保存する基本的な手順をカバーします。

IronXLとは何ですか?

IronXL は、Microsoft ExcelやOffice Interopの依存関係を必要とせずに、Excel文書を操作する機能を提供する.NET Excelライブラリです。 それは、.NET Frameworkと.NET Coreの両方をサポートしており、ほんの数行のコードでExcelファイルの作成、操作、読み取りが可能です。 Excelファイルの読み取りに関する詳細なチュートリアルはこちらをご覧ください エクセルチュートリアル.

IronXLライブラリは Excelドキュメントの読み書き, データを抽出する これらからデータを操作し、新しいExcelファイルをゼロから作成することさえ可能です。 IronXLは.XLS形式だけでなく、 .XLSXと互換性がありますこれは、スプレッドシートを表現するためにMicrosoftによって開発されたXMLベースのファイル形式です。

前提条件

コードに入る前に、以下の項目を確認してください:

  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 アプリ」を選択し、「次へ」をクリックします。

  3. プロジェクトに名前を付けます。例えば、「Open_Excel_File_.NET_Core」とし、場所を選択して「次へ」をクリックします。

  4. ターゲットフレームワークとして「.NET Core」を選択し、バージョンとして「ASP.NET Core 3.1 以上」を選択してください。 「プロジェクトテンプレート」セクションで「Webアプリケーション」を選択し、「作成」をクリックします。

IronXLパッケージのインストール

次のステップでは、この新しく作成されたプロジェクトに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 Page」を選択します。

  2. 「ExcelOpener」とページ名に入力し、「追加」をクリックしてください。

    ASP .NET CoreでExcelファイルを開く方法、図2:新しいRazorページを作成

    新しいRazerページを作成

    これは2つのファイルを作成します:ExcelOpener.cshtmlExcelOpener.cshtml.cs

    ExcelOpener.cshtmlファイルにはページのHTMLマークアップが含まれており、ExcelOpener.cshtml.csファイルにはページのC#コードビハインドが含まれています。

Excelファイルの読込

コードに飛び込みましょう。 提供された ExcelOpenerModel クラスは、Razor ページモデルです。 このクラスには List があります<List>Dataプロパティは、Excelファイルから読み取ったデータを保存するために使用されます。

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>>();
}
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 Sub
VB   C#

OnGet メソッドでは、IronXL を使用して Excel ファイルを読み込み、デフォルトのワークシートからデータを読み取ります。 (ワークブックの最初のシート). 各行はListとして表されます、これらすべてのリストは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);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

主なメソッドの説明

WorkBook.Loadを日本語に翻訳する場合、コンテキストや技術的な意味を正確に維持することが重要です。以下が適切な翻訳です:

WorkBook.Load

この場合、製品名や特定のクラス・メソッド名をそのまま残すことが一般的です。英語の技術用語やプログラミング用語は日本語の技術書やプログラミングのドキュメントでもそのまま使用されることが多いので、「WorkBook.Load」はそのまま記載するのが適切です。(ファイルパス)**:このメソッドは指定されたファイルパスからExcelドキュメントを読み込みます。 それはExcelシートの読み込みと読み取りを助けます。

  • workbook.DefaultWorkSheet: このプロパティはデフォルトの (最初) Excelワークシート in the Excelスプレッドシート.

    sheet.GetCellAt(i, j).Value.ToString

(この技術的な用語は翻訳せず、元のままにすることが最適ですので、そのまま保持しました。)()これは指定された行と列のインデックスでセルを取得し、その値を文字列に変換します。 これは、行と列のインデックスに基づいてExcelファイル内の特定のセルまたは範囲にアクセスできるインデックスメソッドの例です。

簡単な説明

ExcelOpener.cshtml.cs ファイルには、ExcelOpenerModel というクラスが Razor ページ モデルを表しています。 それには、List 型の Data という名前のプロパティが含まれています。<List`, これはExcelファイルからのデータを保持します。

OnGet メソッドはページがリクエストされたときに呼び出され、Excel ファイルからデータを読み取る役割を果たします。このメソッドは IronXL を使用して Excel ファイルを読み込み、デフォルトのワークシートを選択し、行と列を繰り返し処理して Data プロパティにデータを格納します。

エクセルファイルの作成

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);
    }
}
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
VB   C#

主要なメソッドの説明

  • sheet.SetCellValue(i、j、データ[i][j])このメソッドは指定された行と列のインデックスでセルの値を設定します。

    こちらを日本語に翻訳した内容です:

  • **`workbook.SaveAs(ファイルパス)このメソッドは、Excelワークブックを指定されたファイルパスに保存します。

簡単な説明

OnPost メソッドは、フォームが送信されると呼び出され、修正されたデータを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>
@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>
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

ページへのナビゲート

_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 ショートカットを使用してアプリケーションをビルドします。 Visual Studioで「スタート」ボタンをクリックするか、F5キーを押してアプリケーションを実行します。

アプリケーションが稼働している場合は、ナビゲーションバーの対応するリンクをクリックして「ExcelOpener」ページに移動してください。 ページは、Excelからのデータを表形式で表示します。

表のデータを変更し、「保存」ボタンをクリックして変更をExcelファイルに保存できます。

![ASP .NET CoreでExcelファイルを開く方法

図3: WebアプリケーションでExcelデータを表示](/static-assets/excel/blog/asp-net-core-open-excel-file-tutorial/asp-net-core-open-excel-file-tutorial-3.webp)

WebアプリケーションにExcelデータを表示

このチュートリアルでは、ASP.NET CoreアプリケーションでIronXLを使用してExcelファイルを開く方法を示しました。 IronXLは、Excelファイルの読み取りと操作を簡単かつ便利に行う方法を提供します。 IronXLのドキュメントを参照して、より高度な機能や機能性を探ることができます。

IronXLは、 無料試用その機能を評価することができます。 プロジェクトに役立つと感じた場合は、$599からライセンスを購入することができます。

< 以前
IronXLを使用してExcelファイルを操作する方法: .NET Excel ライブラリ
次へ >
データを失わずにExcelのセルを結合する方法

準備はできましたか? バージョン: 2024.9 新発売

無料のNuGetダウンロード 総ダウンロード数: 977,734 View Licenses >