IronXL と C# を使用して ASP.NET MVC で Excel ファイルを読み取る

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

IronXLはASP.NET MVC開発者がMicrosoft Officeに依存することなくC#でExcelファイルを直接読み込み、ExcelデータをSystem.Data.DataTableに変換し、わずか数行のコードでWebビューに簡単に表示できるようにします。

クイックスタート: ExcelシートをMVCでDataTableにロードして変換する

この例では、Excelワークブックを読み込み、最初のワークシートを選択し、IronXLを使用してSystem.Data.DataTableに変換します。

Nuget Icon今すぐ NuGet で PDF を作成してみましょう:

  1. NuGet パッケージ マネージャーを使用して IronXL をインストールします

    PM > Install-Package IronXL.Excel

  2. このコード スニペットをコピーして実行します。

    var dataTable = IronXL.WorkBook.Load("CustomerData.xlsx").DefaultWorkSheet.ToDataTable(true);
  3. 実際の環境でテストするためにデプロイする

    今すぐ無料トライアルでプロジェクトに IronXL を使い始めましょう
    arrow pointer

Excel読み取り用のASP.NETプロジェクトを作成するにはどうすればよいですか?

なぜ Visual Studio 2022 が最適なのですか?

Visual Studio 2022を使用して、新しいASP.NETプロジェクトを作成します。 Visual Studio 2022では、.NET 6+フレームワークの優れたサポート、IronXLメソッドのインテリセンスの改善、大きなExcelファイルを扱う際のパフォーマンスの向上が図られています。 IDEのNuGet統合により、IronXLのインストールは特に簡単です。

どのプロジェクトテンプレートを選べばよいですか?

ASP.NETでExcelファイルを読むには、"ASP.NET Core Web App (Model-View-Controller)"テンプレートを選択してください。 このテンプレートは、データ処理(Excelの読み込み)とプレゼンテーション・ロジックを分離したクリーンなMVC構造を提供します。 MVCパターンは、IronXLDataTable変換と完全に連動しており、コントローラでスプレッドシートを読み込み、ビューでシームレスに表示することができます。

どの.NETバージョンを推奨しますか?

IronXLは、.NET Framework 4.6.2+と.NET Core 3.1+で動作します。 新しいASP.NET MVCプロジェクトでは、パフォーマンスとセキュリティを最適化するために、.NET 6.0以上を使用してください。 これらのバージョンでは、大きなExcelファイルを処理する際のメモリ管理が改善され、スプレッドシートファイルタイプを変換する際の非同期/待機サポートが向上しています。

どのようにIronXLライブラリをインストールしますか? ### インストール要件は何ですか?

今日あなたのプロジェクトでIronXLを無料トライアルで使用開始。

最初のステップ:
green arrow pointer
------------------------------------ ### どのインストール方法が最も速いですか? 新しいプロジェクトを作成したら、`IronXL`ライブラリをインストールしてください。 以下の手順に従って、`IronXL`をインストールしてください。 NuGetパッケージマネージャーコンソールを開き、次のコマンドを実行します。 ```shell :ProductInstall ``` ### どのようにインストールを確認できますか? `IronXL`が正しくインストールされていることを確認するには、ソリューションエクスプローラーでプロジェクトの依存関係を確認してください。 IronXL "は "Dependencies > Packages "にリストされています。 さらに、コントローラファイルの先頭に`using IronXL;`を追加してみてください。 インストールに関するトラブルシューティングについては、[ライセンス ガイド](https://ironsoftware.com/csharp/excel/get-started/license-keys/)をご覧ください。

コントローラで Excel ファイルを読むには? ### コントローラアクションにはどのようなコードがありますか? ASP.NETプロジェクトのデフォルトのコントローラ(例えば、`HomeController.cs`)を開き、`Index`メソッドを次のコードに置き換えてください: ```csharp using IronXL; using System.Data; public ActionResult Index() { // Load the Excel workbook from a specified path. WorkBook workBook = WorkBook.Load(@"C:\Files\Customer Data.xlsx"); // Access the first worksheet from the workbook. WorkSheet workSheet = workBook.WorkSheets.First(); // Convert the worksheet data to a DataTable object. // The 'true' parameter uses the first row as column headers var dataTable = workSheet.ToDataTable(true); // Send the DataTable to the view for rendering. return View(dataTable); } ``` ### なぜ他の形式ではなくDataTableを使うのですか

`Index`アクションメソッドで、`IronXL`の`Load`メソッドを使用してExcelファイルをロードします。 Excelファイルのパス(ファイル名を含む)がメソッド呼び出しのパラメーターとして提供されます。 次に、最初のExcelシートを作業シートとして選択し、そこに含まれるデータを`DataTable`オブジェクトにロードします。 最後に、`DataTable`をフロントエンドに送信します。 `DataTable`は、Razorビューとシームレスに統合され、行と列を反復処理するための組み込みサポートを提供するため、ASP.NET MVCに最適です。 カスタムオブジェクトとは異なり、`DataTable`はモデルマッピングを必要とせず、混合データ型を自動的に処理します。 必要に応じて、`DataSet`と`DataTable`をExcelにエクスポートすることもできます。 ### ファイルが見つからない場合のエラー処理はどうなりますか? 堅牢なエラー処理により、Excelファイルがなかったり破損していても、アプリケーションがクラッシュすることはありません。 以下は、適切な例外処理を施した強化版です: ```csharp public ActionResult Index() { try { string filePath = @"C:\Files\Customer Data.xlsx"; // Check if file exists before attempting to load if (!System.IO.File.Exists(filePath)) { ViewBag.Error = "Excel file not found at specified location."; return View(new DataTable()); } // Load workbook with error handling WorkBook workBook = WorkBook.Load(filePath); // Verify worksheet exists if (workBook.WorkSheets.Count == 0) { ViewBag.Error = "No worksheets found in the Excel file."; return View(new DataTable()); } WorkSheet workSheet = workBook.WorkSheets.First(); var dataTable = workSheet.ToDataTable(true); return View(dataTable); } catch (Exception ex) { // Log the exception (consider using a logging framework) ViewBag.Error = $"Error reading Excel file: {ex.Message}"; return View(new DataTable()); } } ``` ### 異なるワークシートを選択するにはどうすればよいですか? `IronXL`は、[特定のワークシートを選択して作業する](https://ironsoftware.com/csharp/excel/how-to/manage-worksheet/)ための複数の方法を提供します。 インデックスや名前でワークシートにアクセスしたり、利用可能なすべてのシートを繰り返し表示したりすることができます: ```csharp // Method 1: Select by worksheet name WorkSheet namedSheet = workBook.GetWorkSheet("Sales Data"); // Method 2: Select by index (zero-based) WorkSheet secondSheet = workBook.WorkSheets[1]; // Method 3: Select the default/active worksheet WorkSheet defaultSheet = workBook.DefaultWorkSheet; // Method 4: Iterate through all worksheets foreach (WorkSheet sheet in workBook.WorkSheets) { string sheetName = sheet.Name; // Process each worksheet } ``` ## ExcelデータをWebページに表示するには? ### どのようなビューコードが必要ですか? 次の例では、前の例で返された`DataTable`をWebブラウザで表示する方法を示します。 この例で使用されているExcelファイルを以下に示します:
Excel spreadsheet with customer names, shipping costs, and unit prices - sample data for web display tutorial

Excelファイル

`index.cshtml`(インデックス・ビュー)を開き、コードを次のHTMLコードに置き換えてください: ```csharp @{ ViewData["Title"] = "Home Page"; } @using System.Data @model DataTable
@* Check for errors first *@ @if (ViewBag.Error != null) {
@ViewBag.Error
} @* Display table only if data exists *@ @if (Model != null && Model.Rows.Count > 0) { @foreach (DataRow row in Model.Rows) { @for (int i = 0; i < Model.Columns.Count; i++) { } }
@row[i]
} else {

No data to display.

} ``` ### テーブルのスタイリングにBootstrapを使用する理由 上記のコードは、`Index`メソッドから返された`DataTable`をモデルとして使用します。 `@for`ループを使用してテーブルの各行をウェブページに印刷し、装飾のためにBootstrapフォーマットを含めます。 Bootstrapは、さまざまな画面サイズに自動的に調整するレスポンシブなテーブルデザインを提供します。 `table-dark`クラスは、読みやすい魅力的な暗いテーマの表を作成します。 [セルの境界線と配置](https://ironsoftware.com/csharp/excel/how-to/border-alignment/)や[背景のパターンと色](https://ironsoftware.com/csharp/excel/how-to/background-pattern-color/)のような、より高度なExcelの書式設定のために、`IronXL`は、構造化データに直接アクセスするための追加のメソッドを提供します。 ### 最終的なアウトプットはどのようになりますか? プロジェクトを実行すると、以下のような結果が得られます:
Bootstrap table displaying Excel customer data with names, shipping costs, and unit prices in ASP.NET MVC application

ブートストラップテーブル

### テーブルにヘッダーを追加するにはどうすればよいですか? Excelファイルから列ヘッダーを表示するには、テーブルヘッダーセクションを含むようにビューコードを修正してください。 `ToDataTable(true)`を呼び出すと、`IronXL`は自動的に最初の行を列名として使用します: ```csharp @if (Model != null && Model.Rows.Count > 0) { @foreach (DataColumn column in Model.Columns) { } @foreach (DataRow row in Model.Rows) { @for (int i = 0; i < Model.Columns.Count; i++) { } }
@column.ColumnName
@row[i]
} ``` この機能拡張により、Excelファイルから"顧客名"、"送料"、"単価"などの適切な列見出しが表示されます。[名前付き範囲](https://ironsoftware.com/csharp/excel/how-to/named-range/) や [名前付きテーブル](https://ironsoftware.com/csharp/excel/how-to/named-table/) を含むより複雑なシナリオのために、 `IronXL` は、構造化されたデータに直接アクセスするための追加のメソッドを提供します。

よくある質問

Microsoft OfficeなしでASP.NET MVCでExcelファイルを読むにはどうすればよいですか?

IronXLはMicrosoft Officeに依存することなく、C#で直接Excelファイルを読み込むことができます。NuGet経由でIronXLをインストールし、WorkBook.Load()を使ってExcelファイルを開き、たった1行のコードでDataTableに変換するだけです: var dataTable = IronXL.WorkBook.Load('CustomerData.xlsx').DefaultWorkSheet.ToDataTable(true);

ASP.NETでExcelデータをDataTableに変換する最速の方法は何ですか?

IronXLはExcelワークシートをSystem.Data.DataTableオブジェクトに変換するToDataTable()メソッドを提供します。IronXLでワークブックをロードした後、任意のワークシートにアクセスし、ToDataTable(true)を呼び出してヘッダーを含めます。この変換は1行のコードで済み、ASP.NET MVCビューとシームレスに動作します。

WebアプリケーションでExcelファイルを処理するには、どの.NETバージョンを使用すればよいですか?

IronXLは.NET Framework 4.6.2+と.NET Core 3.1+をサポートしています。新しいASP.NET MVCプロジェクトでは、.NET 6.0以上を推奨します。.NET 6.0では、IronXLで大きなExcelファイルを処理する際のメモリ管理が改善され、スプレッドシート操作の非同期/待機サポートが向上しています。

Excelの読み取り機能に最適なVisual Studioプロジェクトテンプレートは?

プロジェクトを作成するときは、'ASP.NET Core Web App (Model-View-Controller)'テンプレートを選択してください。このMVC構造はIronXLのDataTable変換機能を完全に補完し、ビューでデータをきれいに表示しながら、コントローラでExcelファイルを読み込んで処理することを可能にします。

ASP.NETプロジェクトにExcel読み取りライブラリをインストールする方法を教えてください。

NuGetパッケージマネージャーコンソールから'Install-Package IronXL.Excel'を実行してIronXLをインストールする。インストール後、プロジェクトの依存関係をチェックし、コントローラにusing IronXL;'を追加することで、IronXLが正しく追加されていることを確認する。

カーティス・チャウ
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はできましたか?
Nuget ダウンロード 1,765,830 | バージョン: 2025.12 リリース