ASP.NET CoreでExcelファイルを開く方法
このチュートリアルでは、ASP.NET CoreアプリケーションでIronXLライブラリを使用してExcelファイルを開く方法をご紹介します。 Excelファイルを読み取る基本的な手順をカバーし、それらからデータを表示し、修正したデータをファイルに戻して保存する方法を説明します。
IronXLとは?
IronXL は、Microsoft ExcelやOffice Interopの依存性を必要とせずにExcelドキュメントを操作する機能を提供する.NETのExcelライブラリです。 これは、.NET Frameworkと.NET Coreの両方をサポートし、数行のコードでExcelファイルを作成、操作、および読み取ることができます。 Excelファイルの読み取りに関する詳細なチュートリアルについては、このExcelチュートリアルをご参照ください。
IronXLライブラリはExcelドキュメントを読み書きすることができ、データを抽出し、そのデータを操作し、さらには新しいExcelファイルをゼロから作成することもできます。 IronXLは、.XLS形式だけでなく、Microsoftがスプレッドシートを表現するために開発した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_ExcelFile.NET_Core"を入力し、場所を選んで"次へ"をクリックします。
- ターゲットフレームワークとして".NET Core"を選択し、バージョンとして"ASP.NET Core 3.1以上"を選択します。 "プロジェクトテンプレート"セクションで"Webアプリケーション"を選択し"作成"をクリックします。
IronXLパッケージをインストールする
次のステップでは、新しく作成したプロジェクトにIronXLパッケージをインストールします:
- ソリューションエクスプローラーのプロジェクトを右クリックし、"NuGetパッケージの管理"を選択します。
- "参照"タブで"IronXL"を検索し、IronXL.Excelパッケージの"インストール"をクリックします。
NuGetパッケージマネージャUIでIronXLパッケージを検索してインストールする
- パッケージのインストールを待ちます。
これでASP.NET Coreプロジェクトが設定され、IronXLライブラリがインストールされ使用可能になりました。
Razorページを作成する
次に、Excelファイルを開くコードを書くためのRazorページを作成します。
- ソリューションエクスプローラーの"Pages"フォルダを右クリックし、"追加">"Razorページ"を選択します。
- ページ名に"ExcelOpener"と入力し"追加"をクリックします。
新しいRazorページを作成する
これにより、ExcelOpener.cshtml と ExcelOpener.cshtml.cs の2つのファイルが作成されます。
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>>();
}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);
}
}主要メソッドの説明
WorkBook.Load(filepath):このメソッドは、指定されたファイル パスから Excel ドキュメントを読み込みます。 Excelシートを読み込んで読み取るのに役立ちます。workbook.DefaultWorkSheet:このプロパティは、Excel スプレッドシート内の既定の (最初の) Excel ワークシートを取得します。sheet.GetCellAt(i, j).Value.ToString():指定された行と列のインデックスにあるセルを取得し、その値を文字列に変換します。 これは、行と列のインデックスに基づいてExcelファイル内の特定のセルや範囲にアクセスするためのインデックスメソッドの一例です。
短い説明
ExcelOpener.cshtml.cs ファイルでは、ExcelOpenerModelという名前のクラスがRazorページモデルを表します。 このクラスにはDataという名前のList<List<string>>型のプロパティが含まれており、Excelファイルからのデータを保持します。
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);
}
}主要メソッドの説明
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>@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><li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/ExcelOpener">ExcelOpener</a>
</li>アプリケーションの実行と出力の説明
Visual Studioの"ビルド"ボタンをクリックするか、Ctrl + Shift + Bショートカットを使用してアプリケーションをビルドします。 Visual Studioで"開始"ボタンをクリックするか、F5を押してアプリケーションを実行します。
アプリケーションが実行されたら、ナビゲーションバーの対応するリンクをクリックして"ExcelOpener"ページに移動します。 ページはExcelからのデータを表形式で表示します。
テーブル内のデータを変更し、"保存"ボタンをクリックすることで、変更をExcelファイルに保存できます。
Webアプリケーションで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操作でIronXLをOffice Interopよりも使用する利点は何ですか?
IronXLはMicrosoft ExcelやOffice Interopの依存関係を必要とせず、サーバー環境でMicrosoft Officeをインストールすることが難しい場合に理想的です。.NET Frameworkと.NET Coreの両方をサポートし、.XLSおよび.XLSX形式を扱えます。
Razor Pagesを使用してWebアプリケーション内でExcelデータを表示するにはどうすればよいですか?
ExcelデータをWebアプリケーションで表示するには、IronXLを使用してExcelデータをロードし読み取るRazorページを作成します。HTMLフォームを使用して各セルのデータをテキスト入力フィールドにレンダリングし、ユーザーがWebインターフェース内でデータを表示および編集できるようにします。
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ファイルを保存します。
Excelファイル操作のためのRazorページの設定に関わるステップは何ですか?
Razorページを設定するには、ASP.NET Coreプロジェクト内に新しいRazorページを作成します。Razorページを使用してIronXLでExcelデータを読み込み、Webフォームで表示し、フォーム送信を処理してExcelファイルに変更を保存します。
ASP.NET CoreでExcelファイルが読み込めない場合のトラブルシューティング方法は?
Excelファイルが読み込めない場合は、ファイルパスがアプリケーションから正しくアクセスできることを確認してください。IronXLが正しくインストールされていること、ファイル形式がサポートされていることを確認します。問題を示す可能性のある例外やエラーメッセージをチェックしてください。
IronXLライブラリを購入する前に試すことはできますか?
はい、IronXLはその機能を評価するための無料のトライアルバージョンを提供しています。ライセンスを購入する前に、それがニーズに合うかを確認するためにこのトライアルを利用できます。








