C#でIronXLを使用してBlazorでExcelファイルを読む(例題チュートリアル)

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

イントロダクション

Blazorは、マイクロソフトによって作成されたオープンソースの.NET Webフレームワークです。 Blazorアプリケーションは、C#コードをブラウザに対応するJavaScriptとHTMLにコンパイルすることで動作します。 このチュートリアルでは、IronXL C#ライブラリを使用してBlazorサーバーサイドアプリケーションでExcelドキュメント/ワークシートを読み取るための最適かつ簡単な方法についての知識を共有します。

BlazorでのIronXLを使用したExcel表示のデモンストレーション

手順 1 - Visual StudioでBlazorプロジェクトを作成

以下のデータを含むXLSXファイルがあり、それをBlazor Serverアプリで読み込み、開きます:

入力XLSX Excelシート Blazorサーバー ブラウザーでの結果
名(ファーストネーム) 苗字 ID
ジョン Applesmith 1
リチャード スミス 2
シェリー ロビンズ 3

Visual Studio IDEからBlazorプロジェクトを作成することから始めます:

「Blazor Server App」 プロジェクトの種類を選択してください。

解決策を変更せずに F5 キーでアプリケーションを実行してください。 アプリケーションの Fetch data タブに移動します。

私たちの目標は、アップロードボタンを使用してExcelファイルをBlazorアプリに読み込み、このページに表示することです。

ステップ 2 - ソリューションに IronXL を追加

IronXL: .NET Excelライブラリ(インストール手順):

IronXLは、Microsoft Excelのスプレッドシートをオブジェクトのように扱うことができる.NETライブラリであり、開発者がC#および.NET Frameworkの全機能を使用してデータストリームを操作できるようにします。 開発者として、Excelドキュメント/ワークシートからすべての行のセルおよび列情報をアプリケーションやデータベースに取り込むための便利な方法が欲しいです。

IronXLを使用すると、セルの値、セルの内容、画像、参照、およびフォーマットなど、ワークシートからあらゆる情報を取得することが可能です。 IronXLは多くの点でNPOIより優れています。 IronXLは、より多くの機能を提供し、複雑なロジックの記述を容易にします。 また、より好ましいライセンスがあり、サポートチームもより有能です。

IronXLは、最新バージョンの.NETすべてに対応しています。 (8, 7, and 6) そして、.NET Core Framework 4.6.2以降。

次の方法のいずれかを使用して、IronXLをソリューションに追加し、次にソリューションをビルドしてください。

オプション2A - NuGetパッケージマネージャーを使用

Excel 用 C# NuGet ライブラリ

でインストール NuGet

Install-Package IronXL.Excel
または
Java PDF JAR(ジャバPDF JAR)

ダウンロード DLL (ディーエルエル)

DLLをダウンロード

プロジェクトに手動でインストールする

Excel 用 C# NuGet ライブラリ

でインストール NuGet

Install-Package IronXL.Excel
または
Java PDF JAR(ジャバPDF JAR)

ダウンロード DLL (ディーエルエル)

DLLをダウンロード

プロジェクトに手動でインストールする

今日からプロジェクトでIronPDFを使い始めましょう。無料のトライアルをお試しください。

最初のステップ:
green arrow pointer

チェックアウト IronXL オン Nuget 迅速なインストールと展開のために。8百万以上のダウンロード数により、ExcelをC#で変革しています。

Excel 用 C# NuGet ライブラリ nuget.org/packages/IronXL.Excel/
Install-Package IronXL.Excel

インストールを検討してください IronXL DLL 直接。ダウンロードして、プロジェクトまたはGACの形式で手動でインストールしてください。 IronXL.zip

プロジェクトに手動でインストールする

DLLをダウンロード

Option 2B - csprojファイルにPackageReferenceを追加

次の行を任意の `

IronXL.License.LicenseKey = "YOUR_LICENSE_KEY_HERE";
IronXL.License.LicenseKey = "YOUR_LICENSE_KEY_HERE";
IronXL.License.LicenseKey = "YOUR_LICENSE_KEY_HERE"
VB   C#

``` 終了後、IronXLを利用できます。<ItemGroup>ソリューションの.csproj` ファイルにおいて:

<PackageReference Include="IronXL.Excel" Version="*" />
XML

Visual Studio で表示されているように:

ステップ3 - ファイルアップロードと表示のコーディング

Visual Studioのソリューションビューで、Pages/フォルダーに移動し、FetchData.razorファイルを見つけます。他のrazorファイルを使用することもできますが、Blazor Server Appテンプレートに付属しているため、このファイルを使用します。

以下のコードに置き換えてください:

@using IronXL;
@using System.Data;

@page "/fetchdata"

<PageTitle>Excel File Viewer</PageTitle>

<h1>Open Excel File to View</h1>

<InputFile OnChange="@OpenExcelFileFromDisk" />

<table>
    <thead>
        <tr>
            @foreach (DataColumn column in displayDataTable.Columns)
            {
                <th>
                    @column.ColumnName
                </th>
            }
        </tr>
    </thead>
    <tbody>
        @foreach (DataRow row in displayDataTable.Rows)
        {
            <tr>
                @foreach (DataColumn column in displayDataTable.Columns)
                {
                    <td>
                        @row [column.ColumnName].ToString()
                    </td>
                }
            </tr>
        }
    </tbody>
</table>

@code {
    // Create a DataTable
    private DataTable displayDataTable = new DataTable();

    // When a file is uploaded to the App using the InputFile, trigger:
    async Task OpenExcelFileFromDisk(InputFileChangeEventArgs e)
    {
        IronXL.License.LicenseKey = "PASTE TRIAL OR LICENSE KEY";

        // Open the File to a MemoryStream object
        MemoryStream ms = new MemoryStream();

        await e.File.OpenReadStream().CopyToAsync(ms);
        ms.Position = 0;

        // Define variables for IronXL
        WorkBook loadedWorkBook = WorkBook.FromStream(ms);
        WorkSheet loadedWorkSheet = loadedWorkBook.DefaultWorkSheet; // Or use .GetWorkSheet()

        // Add header Columns to the DataTable
        RangeRow headerRow = loadedWorkSheet.GetRow(0);
        for (int col = 0 ; col < loadedWorkSheet.ColumnCount ; col++)
        {
            displayDataTable.Columns.Add(headerRow.ElementAt(col).ToString());
        }

        // Populate the DataTable
        for (int row = 1 ; row < loadedWorkSheet.RowCount ; row++)
        {
            IEnumerable<string> excelRow = loadedWorkSheet.GetRow(row).ToArray().Select(c => c.ToString());
            displayDataTable.Rows.Add(excelRow.ToArray());
        }
    }
}
@using IronXL;
@using System.Data;

@page "/fetchdata"

<PageTitle>Excel File Viewer</PageTitle>

<h1>Open Excel File to View</h1>

<InputFile OnChange="@OpenExcelFileFromDisk" />

<table>
    <thead>
        <tr>
            @foreach (DataColumn column in displayDataTable.Columns)
            {
                <th>
                    @column.ColumnName
                </th>
            }
        </tr>
    </thead>
    <tbody>
        @foreach (DataRow row in displayDataTable.Rows)
        {
            <tr>
                @foreach (DataColumn column in displayDataTable.Columns)
                {
                    <td>
                        @row [column.ColumnName].ToString()
                    </td>
                }
            </tr>
        }
    </tbody>
</table>

@code {
    // Create a DataTable
    private DataTable displayDataTable = new DataTable();

    // When a file is uploaded to the App using the InputFile, trigger:
    async Task OpenExcelFileFromDisk(InputFileChangeEventArgs e)
    {
        IronXL.License.LicenseKey = "PASTE TRIAL OR LICENSE KEY";

        // Open the File to a MemoryStream object
        MemoryStream ms = new MemoryStream();

        await e.File.OpenReadStream().CopyToAsync(ms);
        ms.Position = 0;

        // Define variables for IronXL
        WorkBook loadedWorkBook = WorkBook.FromStream(ms);
        WorkSheet loadedWorkSheet = loadedWorkBook.DefaultWorkSheet; // Or use .GetWorkSheet()

        // Add header Columns to the DataTable
        RangeRow headerRow = loadedWorkSheet.GetRow(0);
        for (int col = 0 ; col < loadedWorkSheet.ColumnCount ; col++)
        {
            displayDataTable.Columns.Add(headerRow.ElementAt(col).ToString());
        }

        // Populate the DataTable
        for (int row = 1 ; row < loadedWorkSheet.RowCount ; row++)
        {
            IEnumerable<string> excelRow = loadedWorkSheet.GetRow(row).ToArray().Select(c => c.ToString());
            displayDataTable.Rows.Add(excelRow.ToArray());
        }
    }
}
Private IronXL As [using]
Private System As [using]

'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'@page "/fetchdata" (Of PageTitle) Excel File Viewer</PageTitle> (Of h1) Open Excel File @to View</h1> <InputFile OnChange="@OpenExcelFileFromDisk" /> (Of table) (Of thead) (Of tr) @foreach(DataColumn column in displayDataTable.Columns)
'			{
'				<th> @column.ColumnName </th>
'			}
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'		</tr> </thead> (Of tbody) @foreach(DataRow row in displayDataTable.Rows)
'		{
'			<tr> @foreach(DataColumn column in displayDataTable.Columns)
'				{
'					<td> @row [column.ColumnName].ToString() </td>
'				}
'			</tr>
'		}
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'	</tbody> </table> @code
'	{
'	' Create a DataTable
'	private DataTable displayDataTable = New DataTable();
'
'	' When a file is uploaded to the App using the InputFile, trigger:
'	async Task OpenExcelFileFromDisk(InputFileChangeEventArgs e)
'	{
'		IronXL.License.LicenseKey = "PASTE TRIAL OR LICENSE KEY";
'
'		' Open the File to a MemoryStream object
'		MemoryStream ms = New MemoryStream();
'
'		await e.File.OpenReadStream().CopyToAsync(ms);
'		ms.Position = 0;
'
'		' Define variables for IronXL
'		WorkBook loadedWorkBook = WorkBook.FromStream(ms);
'		WorkSheet loadedWorkSheet = loadedWorkBook.DefaultWorkSheet; ' Or use .GetWorkSheet()
'
'		' Add header Columns to the DataTable
'		RangeRow headerRow = loadedWorkSheet.GetRow(0);
'		for (int col = 0 ; col < loadedWorkSheet.ColumnCount ; col++)
'		{
'			displayDataTable.Columns.Add(headerRow.ElementAt(col).ToString());
'		}
'
'		' Populate the DataTable
'		for (int row = 1 ; row < loadedWorkSheet.RowCount ; row++)
'		{
'			IEnumerable<string> excelRow = loadedWorkSheet.GetRow(row).ToArray().@Select(c => c.ToString());
'			displayDataTable.Rows.Add(excelRow.ToArray());
'		}
'	}
'}
VB   C#

概要

「The 」への翻訳は「」です。しかし、文の残り部分をご提供いただけましたら、完全な翻訳を提供いたします。このウェブページにファイルをアップロードすることができるコンポーネント。 そして、呼び出されたイベントコールバックを、@codeブロックの下部にある非同期メソッドであるOpenExcelFileFromDiskを呼び出すように設定しました。 HTMLはタブ上のテーブルとしてExcelシートをレンダリングします。

IronXL.Excelは、さまざまなスプレッドシート形式を読み取るための唯一の.NETソフトウェアライブラリです。 必要ありません マイクロソフトエクセル インストールされ、Interopに依存しません。


さらなる読み物

APIリファレンスを表示

IronXLのすべての機能、名前空間、クラス、メソッドフィールド、列挙型の詳細を詳述したAPIリファレンスを探索してください。

APIリファレンスを表示

申し訳ありませんが、翻訳を行うための具体的なコンテンツが提供されていません。翻訳したい英語のテキストを入力してください。ダウンロード ソフトウェア製品。