IRONXLの使用

Razor Pagesでエクセルファイルを生成する方法

リーガン・パン
リーガン・パン
2022年11月14日
更新済み 2024年1月29日
共有:

イントロダクション

Razor Pagesは、ウェブページを作成する新しい方法です。 Razor Pagesでは、Webページをレンダリングするソースコードがサーバーサイドページによって生成されるのではなく、C#で構築されます。

Excelファイルを効率的に扱うには、他のライブラリ(PowerPointファイルでも使用できるPOI JavaプロジェクトのNPOIパッケージやOffice Interopなど)よりもIronXLライブラリを推奨します。これは、シンプルで使いやすく、Microsoft Officeを必要としない豊富な機能を備えたライブラリを提供します。このライブラリは、複数のバージョンの.NETもサポートする必要があります。

この記事では、IronXL C# ライブラリを使用して、Razor Pages (ページモデル) でダミーデータと行ヘッダーを持つExcelスプレッドシートを生成およびエクスポートする方法を示します。

IronXL: C#Excelライブラリ

IronXLは、大規模なデータセットを操作するためのメソッドや関数を提供するC# Excelライブラリです。 並列処理を使用して、より多くの計算能力を得ることができます。 そのプロセスの内部がどう動作するかについての知識を必要としないため、プログラマーにとって使いやすいです。 それは、XLSおよびXLSXファイルをサポートしています。

IronXLは、Excelファイルのインポートとエクスポート、Excelの数式の作成、およびオフィスドキュメントの作成もサポートしています。 Microsoft Officeを自分のマシンにインストールしたくない方にとって、理想的なソリューションです。

Razor PagesでIronXLを使用してExcelファイルをインポートおよびエクスポートする方法を見てみましょう。

Razor PagesでExcelファイルを生成する

ExcelシートをRazor Pagesで作成するには、Visual Studioを開き、ASP.NET Core Webアプリケーションを作成し、IronXLをインストールしてください。

前提条件

Razor PagesでExcelファイルを作成するためには、いくつかの前提条件があります:

  1. Visual Studio(最新バージョン)

  2. .NET Framework 6 または 7

  3. Visual Studio における .NET Core Web アプリケーション

IronXLライブラリをインストール

NuGet パッケージ マネージャー コンソールを使用してインストールできます。 コンソールを開き、.NET Core WebアプリケーションにIronXLライブラリをインストールするために次のコマンドを書いてください。

Install-Package IronXL.Excel

エクセルファイルを生成するためのコード

さて、コードを書く時間です。 Pagesフォルダーから「Index.cs」ファイルを開き、以下のメソッドを追加してください。

public FileResult OnPostExport()
{
    WorkBook workBook = new WorkBook(IronXL.ExcelFileFormat.XLSX);
    WorkSheet workSheet = workBook.CreateWorkSheet("data");

    //Add data and styles to the new worksheet

    workSheet ["A1"].Value = "Product EN";
    workSheet ["B1"].Value = "SKU";
    workSheet ["C1"].Value = "Customer";

    workSheet ["A1:C1"].Style.Font.Bold = true;

    workSheet ["A2"].Value = "Iron Rods";
    workSheet ["A3"].Value = "Mobile Phones";
    workSheet ["A4"].Value = "Chargers";

    workSheet ["B2"].Value = "105";
    workSheet ["B3"].Value = "285";
    workSheet ["B4"].Value = "301";

    workSheet ["C2"].Value = "Adam";
    workSheet ["C3"].Value = "Ellen";
    workSheet ["C4"].Value = "Tom";

    return File(workBook.ToStream().ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Grid.xlsx");
}
public FileResult OnPostExport()
{
    WorkBook workBook = new WorkBook(IronXL.ExcelFileFormat.XLSX);
    WorkSheet workSheet = workBook.CreateWorkSheet("data");

    //Add data and styles to the new worksheet

    workSheet ["A1"].Value = "Product EN";
    workSheet ["B1"].Value = "SKU";
    workSheet ["C1"].Value = "Customer";

    workSheet ["A1:C1"].Style.Font.Bold = true;

    workSheet ["A2"].Value = "Iron Rods";
    workSheet ["A3"].Value = "Mobile Phones";
    workSheet ["A4"].Value = "Chargers";

    workSheet ["B2"].Value = "105";
    workSheet ["B3"].Value = "285";
    workSheet ["B4"].Value = "301";

    workSheet ["C2"].Value = "Adam";
    workSheet ["C3"].Value = "Ellen";
    workSheet ["C4"].Value = "Tom";

    return File(workBook.ToStream().ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Grid.xlsx");
}
Public Function OnPostExport() As FileResult
	Dim workBook As New WorkBook(IronXL.ExcelFileFormat.XLSX)
	Dim workSheet As WorkSheet = workBook.CreateWorkSheet("data")

	'Add data and styles to the new worksheet

	workSheet ("A1").Value = "Product EN"
	workSheet ("B1").Value = "SKU"
	workSheet ("C1").Value = "Customer"

	workSheet ("A1:C1").Style.Font.Bold = True

	workSheet ("A2").Value = "Iron Rods"
	workSheet ("A3").Value = "Mobile Phones"
	workSheet ("A4").Value = "Chargers"

	workSheet ("B2").Value = "105"
	workSheet ("B3").Value = "285"
	workSheet ("B4").Value = "301"

	workSheet ("C2").Value = "Adam"
	workSheet ("C3").Value = "Ellen"
	workSheet ("C4").Value = "Tom"

	Return File(workBook.ToStream().ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Grid.xlsx")
End Function
$vbLabelText   $csharpLabel

上記のコードでは、新しいExcel WorkBook が作成され、1つの WorkSheet を含んでいます。 その後、シートにダミーデータが入力され、次のパラメーターを使用して生成されたファイルがサーバーレスポンスとして返されます:

  • WorkBookStreamに変換する必要があります(ダウンロードする前にファイルをストリームに変換することが重要です)。
  • データ型を設定
  • ダウンロードするファイルの名前を指定してください。

Excelファイルをダウンロードするボタンを作成

「Index.cshtml」の既存のコードを次のコードに置き換えてください:

@page
@model IndexModel
@{
    ViewData ["Title"] = "Home page";
}

<div class="text-center">
    <h1 class="display-4">IronXL Generate Excel File</h1>
    <p class="m-5">IronXL is an Excel Library for C# and allows developers to read and edit Excel data from XLS and XLSX documents without using Microsoft.Office.Interop.Excel</p>
    <form method="post" asp-page-handler="Export">
        <button class="btn btn-success p-3">Generate Excel File!</button>
    </form>
</div>
@page
@model IndexModel
@{
    ViewData ["Title"] = "Home page";
}

<div class="text-center">
    <h1 class="display-4">IronXL Generate Excel File</h1>
    <p class="m-5">IronXL is an Excel Library for C# and allows developers to read and edit Excel data from XLS and XLSX documents without using Microsoft.Office.Interop.Excel</p>
    <form method="post" asp-page-handler="Export">
        <button class="btn btn-success p-3">Generate Excel File!</button>
    </form>
</div>
HTML

上記のHTMLコードにおいて、"asp-page-handler"プロパティを"Export"に設定したformタグを作成してください。 これにより、アプリケーションはExcelファイルをローカルマシンにエクスポートできるようになります。さらに、「Excelファイルを生成!」というテキストのボタンを作成します。 ユーザーがこのボタンをクリックすると、生成されたExcelファイルのダウンロードがブラウザで開始されます。

プロジェクトを実行

プロジェクトを実行すると、ブラウザーに次の画面が表示されます。 緑色のボタンをクリックしてExcelファイルをダウンロードしてください。

Razor PagesでExcelファイルを生成する方法、図1: IronXLでExcelシートを生成する

IronXL によるExcelシートの生成

「Excelファイルを生成」ボタンをクリックすると、その下部にダウンロードされたファイルが表示されます。

Razor PagesでExcelファイルを生成する方法、図2: IronXLダウンロードファイル

IronXL ダウンロードファイル

生成されたExcelファイルを開く

生成された Excel ファイルの内容は、コードに記載された内容と一致しており、フォーマットも完璧です。 以下は生成されたExcelファイルのスナップショットです。

Razor PagesでExcelファイルを生成する方法、図3:IronXL生成ファイル

IronXL 生成ファイル

IronXLは競合他社より優れている

IronXLライブラリは、Excelを扱うための強力なツールであり、XLSおよびXLSXをサポートし、NPOIの制約を持たない。 NPOIはJavaで書かれているため、C#で書かれているIronXLに比べて動作が非常に遅いです。 したがって、ASP.NET Core アプリケーションで大規模または複数のスプレッドシートを生成したい場合は、POI の代わりに IronXL を選択することをお勧めします。

IronXLは、Microsoft Officeを使用せずにExcelファイルを作成および編集するための優れたライブラリです。Microsoft Interopとは異なり、IronXLはExcelの操作を実行し、Excelにエクスポートするために、バックグラウンドでMicrosoft ExcelのActiveXを呼び出す必要はありません。 IronXLはMicrosoft Officeスイートなしで動作できます。また、IronXLではCSVファイルをExcel形式にエクスポートすることも可能です。

さらに、IronXLはExcelファイルとやり取りするための幅広い機能を提供しています。これには、人気のある形式間の変換数式の挿入、チャートの追加や画像の挿入も含まれます。

結論

この記事では、IronXLを使用してRazor PagesでExcelファイルを生成する方法について説明しました。これは、Microsoft Excel ActiveXを呼び出してファイルをダウンロードする必要がない方法です。

Excelファイル作成に関するチュートリアルは以下のリンクをご覧ください。

IronXLは非商用開発目的で無料で使用できます。 無料試用版は本番テスト用に利用可能です。 価格プランを見て、価格およびライセンスの詳細を確認してください。

リーガン・パン
ソフトウェアエンジニア
レーガンはリーディング大学で電子工学の学士号を取得しました。Iron Softwareに入社する前の仕事では、一つのタスクに集中して取り組んでいました。Iron Softwareでは、営業、技術サポート、製品開発、マーケティングのいずれにおいても広範な業務に携わることが最も楽しいと感じています。彼は、Iron Softwareライブラリを開発者がどのように使用しているかを理解し、その知識を使ってドキュメントを継続的に改善し、製品を開発することを楽しんでいます。
< 以前
BlazorでIronXLを使用してデータをExcelにエクスポートする方法
次へ >
C#でCSVパーサーを使用する方法