透かしなしで本番環境でテストしてください。
必要な場所で動作します。
30日間、完全に機能する製品をご利用いただけます。
数分で稼働させることができます。
製品トライアル期間中にサポートエンジニアリングチームへの完全アクセス
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ライブラリです。 並列処理を使用して、より多くの計算能力を得ることができます。 そのプロセスの内部がどう動作するかについての知識を必要としないため、プログラマーにとって使いやすいです。 それは、XLSおよびXLSXファイルをサポートしています。
IronXLは、Excelファイルのインポートとエクスポート、Excelの数式の作成、およびオフィスドキュメントの作成もサポートしています。 Microsoft Officeを自分のマシンにインストールしたくない方にとって、理想的なソリューションです。
Razor PagesでIronXLを使用してExcelファイルをインポートおよびエクスポートする方法を見てみましょう。
ExcelシートをRazor Pagesで作成するには、Visual Studioを開き、ASP.NET Core Webアプリケーションを作成し、IronXLをインストールしてください。
Razor PagesでExcelファイルを作成するためには、いくつかの前提条件があります:
Visual Studio(最新バージョン)
.NET Framework 6 または 7
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
上記のコードでは、新しいExcel WorkBook
が作成され、1つの WorkSheet
を含んでいます。 その後、シートにダミーデータが入力され、次のパラメーターを使用して生成されたファイルがサーバーレスポンスとして返されます:
WorkBook
をStream
に変換する必要があります(ダウンロードする前にファイルをストリームに変換することが重要です)。「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コードにおいて、"asp-page-handler"プロパティを"Export"に設定したformタグを作成してください。 これにより、アプリケーションはExcelファイルをローカルマシンにエクスポートできるようになります。さらに、「Excelファイルを生成!」というテキストのボタンを作成します。 ユーザーがこのボタンをクリックすると、生成されたExcelファイルのダウンロードがブラウザで開始されます。
プロジェクトを実行すると、ブラウザーに次の画面が表示されます。 緑色のボタンをクリックしてExcelファイルをダウンロードしてください。
IronXL によるExcelシートの生成
「Excelファイルを生成」ボタンをクリックすると、その下部にダウンロードされたファイルが表示されます。
IronXL ダウンロードファイル
生成された Excel ファイルの内容は、コードに記載された内容と一致しており、フォーマットも完璧です。 以下は生成されたExcelファイルのスナップショットです。
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は非商用開発目的で無料で使用できます。 無料試用版は本番テスト用に利用可能です。 価格プランを見て、価格およびライセンスの詳細を確認してください。