BlazorでCSVにエクスポートする方法
今日は、BlazorとIronXLを使用してExcelファイルをCSV形式に変換する方法について詳しく見ていきます。 このチュートリアルの終わりには、CSVなどさまざまな形式でExcelデータをエクスポートするBlazorアプリを作れるようになります。
IronXLの紹介
IronXLは、XLS、XLSX、XLSM、XLTX、CSVを含む多くの形式でExcelファイルを扱えるよう設計された強力な.NET Excelライブラリです。Microsoft OfficeやExcel Interopを必要とせずに、開発者がプログラム上でExcelデータを読み書きや操作が可能です。
IronXLを使用すると、Excelワークブックを作成、読み込み、保存したり、個々のセルや範囲にデータを読み書きできます。 また、書式設定、数式、グラフ、ピボットテーブルなどの高度な機能もサポートしています。 IronXLはさまざまな.NETフレームワークに対応しており、C#やVB.NETといった人気のある言語で使用できます。
ExcelファイルをCSVに変換する手順
Blazorプロジェクトの設定
まず、Blazorサーバープロジェクトを新しく作成する必要があります。 Visual Studioを開き、新しいプロジェクトを作成し、"Blazor Server App"テンプレートを選択します。 プロジェクトに名前をつけ、"作成"をクリックします。
プロジェクトが作成されたら、Pagesフォルダーを開き、Index.razorファイルを探します。ここに、Blazorコンポーネントが追加され、ファイルアップロードと変換の処理が行われるコードが書かれます。
IronXLのインストール
コードを書き始める前に、IronXLライブラリをインストールする必要があります。 Visual Studioのパッケージマネージャーコンソールを開き、次のコマンドを実行します。
Install-Package IronXL.Excel
このコマンドは、BlazorプロジェクトにIronXLライブラリをインストールします。 これでコードを書き始める準備が整いました!
ファイルアップロードコンポーネントの作成
まず、ユーザーが既存の Excel ファイルをアップロードできるようにする基本的なファイルアップロードコンポーネントを作成します。次に、Microsoft.AspNetCore.Components.Forms 名前空間から InputFile コンポーネントを追加します。 次のコードを@page ""の行の下にIndex.razorファイルに追加します。
@using Microsoft.AspNetCore.Components.Forms
@using IronXL
@using System.IO
@using System.Threading.Tasks
<div class="container">
<h3>File Upload</h3>
<InputFile class="button" OnChange="@OnInputFileChange" accept=".xls,.xlsx,.xlsm,.xltx,.csv,.tsv" />
<h3>Selected File: @originalFileName</h3>
<h3 style="color:bisque">Is File converted: <span>@message</span></h3>
</div>
このコードは、ボタンとファイル変換の状況を表示するメッセージエリアを備えたファイルアップロードコンポーネントを設定します。 InputFile コンポーネントの accept 属性は、受け入れられるファイル形式を指定します。
ファイル変換コードの作成
次に、ファイルのアップロードと変換を処理するコードを書きます。 このタスクを達成するために、IronXL、Blazor、C#の組み合わせを使用します。 IronXLを使用してCSVをExcelファイルに変換できます。
先ほど追加した div 要素の下に、 Razorファイルに次のコードを追加してください。
@code {
private string originalFileName;
private string message = "";
private async Task OnInputFileChange(InputFileChangeEventArgs e)
{
var file = e.File;
originalFileName = file.Name;
try
{
// Read the uploaded file into a memory stream
using var memoryStream = new MemoryStream();
await file.OpenReadStream().CopyToAsync(memoryStream);
// Load the workbook using IronXL
WorkBook workBook = WorkBook.Load(memoryStream);
// Save the workbook as a CSV file
string outputPath = "sample.csv";
workBook.SaveAsCsv(outputPath);
message = "Conversion completed!";
}
catch (Exception ex)
{
message = $"An error occurred: {ex.Message}";
}
}
}
このコードは、OnInputFileChangeというプライベートメソッドを定義します。 ExcelはXLSまたはXLSX形式である可能性があります。 このコードは、アップロードされた基本的なExcelファイルを読み込み、それをWorkBookをCSVファイルとして保存します。変換のステータスは、ページ上のメッセージ領域に表示されます。
コードの内訳
まずは、完全なコードを見てみましょう:
@page "/"
@using Microsoft.AspNetCore.Components.Forms
@using IronXL
@using System.IO
@using System.Threading.Tasks
<style>
body{
background-color: skyblue
}
.container {
max-width: 800px;
margin: 0 auto;
font-family: Arial, sans-serif;
}
h3 {
margin-top: 30px;
font-size: 30px;
margin-bottom: 30px;
}
.button {
background-color: #4CAF50;
border: none;
color: white;
padding: 15px 32px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 16px;
margin: 15px 0;
cursor: pointer;
}
span {
font-size: 20px;
}
</style>
<div class="container">
<h3>File Upload</h3>
<InputFile class="button" OnChange="@OnInputFileChange" accept=".xls,.xlsx,.xlsm,.xltx,.csv,.tsv" />
<h3>Selected File: @originalFileName</h3>
<h3 style="color:bisque">Is File converted: <span>@message</span></h3>
</div>
@code {
private string originalFileName;
private string message = "";
private async Task OnInputFileChange(InputFileChangeEventArgs e)
{
var file = e.File;
originalFileName = file.Name;
try
{
// Read the uploaded file into a memory stream
using var memoryStream = new MemoryStream();
await file.OpenReadStream().CopyToAsync(memoryStream);
// Load the workbook using IronXL
WorkBook workBook = WorkBook.Load(memoryStream);
// Save the workbook as a CSV file
string outputPath = "sample.csv";
workBook.SaveAsCsv(outputPath);
message = "Conversion completed!";
}
catch (Exception ex)
{
message = $"An error occurred: {ex.Message}";
}
}
}
さらにコードを細かく見ていきましょう:
- ファイルがアップロードされると、
OnInputFileChangeメソッドがトリガーされ、InputFileChangeEventArgsオブジェクトが渡されます。 このオブジェクトには、アップロードされたファイルの名前やサイズなどの情報が含まれています。 - 元のファイル名を
originalFileNameという変数に格納して、ページに表示します。 - try-catch ブロック内で、アップロードされたファイルの内容を読み込むための新しい
MemoryStreamオブジェクトを作成します。 usingステートメントは、メモリストリームがもう必要なくなったときに適切に破棄されることを保証します。 awaitキーワードを使用して、アップロードされたファイルの内容を非同期的にメモリ ストリームにコピーします。 これにより、ファイルを読み込んでいる間もこのアプリケーションが応答性を保ちます。- 次に、
WorkBook.Loadメソッドを使用して、メモリ ストリームの内容をWorkBookオブジェクトにロードします。 このオブジェクトはシート、セル、データを含むExcel全体のワークブックを表します。 - 変換されたCSVファイルの出力ファイル名を指定します。このケースでは、"sample.csv"という名前を使用しています。
- 次に、
WorkBookオブジェクトのSaveAsCsvメソッドを使用して、ワークブックを指定された出力ファイル名で CSV ファイルとして保存します。 - 変換が成功すると、変換が完了したことを示すメッセージが表示されます。 エラーが発生した場合は、例外をキャッチしてエラーメッセージを表示します。
アプリケーションのテスト
Blazorアプリケーションが完成したので、テストする時が来ました! F5を押して、Visual Studioでアプリケーションを実行します。 アプリケーションが実行されると、ページ上にファイルアップロードボタンが表示されるはずです。
Blazorアプリケーションの実行
ボタンをクリックし、アップロードするExcelファイルを選択します。 受け入れられるファイル形式は、InputFile コンポーネントの accept 属性に記載されています。
Excelファイルの選択
ファイルを選択した後、アプリケーションはファイルを読み込み、IronXLを使用してCSV形式に変換し、指定された出力ファイル名で変換後のファイルを保存します。 変換の状態とオリジナルのファイル名を表示するメッセージが表示されるはずです。
変換の状態
おめでとうございます! IronXLを使用してExcelファイルをCSV形式にエクスポートできるBlazorアプリケーションの構築に成功しました。 次のスクリーンショットは、このプログラムの出力を示しています。
出力されたExcelファイル
結論
このチュートリアルでは、IronXLを使用してExcelファイルをCSV形式にエクスポートできるBlazorアプリケーションを構築する方法を示しました。 ファイルアップロードコンポーネントの作成、ファイルのアップロード処理、およびIronXLの強力な機能を使用したExcelファイルのCSV形式への変換の方法を説明しました。
BlazorアプリケーションにIronXLを組み込むことで、Excel関連の様々なタスクを簡単に扱うことができ、データのインポート、操作、エクスポートが可能になります。 これは、プロジェクトに多くの可能性を開き、ユーザーによりリッチな体験を提供するのに役立ちます。 IronXLライブラリを使用してBlazorでCSVをExcelに変換できます。
IronXLは無料トライアルを提供しており、購入を検討する前にその機能と性能を試すことができます。 試用期間終了後、 IronXLのライセンスは $799 から開始されます。
よくある質問
BlazorアプリケーションでExcelファイルをCSV形式に変換するにはどうすればよいですか?
IronXLを使用して、BlazorアプリケーションでExcelファイルをCSV形式に変換できます。まず、Blazorサーバープロジェクトをセットアップし、パッケージマネージャーコンソールを介してIronXLをインストールし、`InputFile`コンポーネントを使用してファイルアップロードコンポーネントを作成します。次に、Excelファイルをメモリストリームに読み込み、IronXLを使用してWorkBookオブジェクトにロードし、SaveAsCsvメソッドを使用してCSVとしてエクスポートします。
BlazorアプリケーションでIronXLを使用する目的は何ですか?
IronXLは、Microsoft OfficeやExcel Interopを必要とせずにExcelデータを扱うためにBlazorアプリケーションで使用されます。これは、開発者がプログラム的にExcelデータを読み取り、操作、およびエクスポートできるようにします。データのインポート、書式設定、ExcelファイルのCSVなどのフォーマットへの変換などの機能を可能にします。
ExcelファイルをCSVに変換するBlazorアプリケーションをテストできますか?
はい、Visual Studioで実行してBlazorアプリケーションをテストできます。ファイルアップロードコンポーネントを使用してExcelファイルを選択します。このアプリケーションは、選択したファイルをIronXLを使用してCSVに変換し、変換状況に関するフィードバックを提供します。
Excel InteropよりもIronXLを使用する利点は何ですか?
Excel InteropよりもIronXLを使用することで、Microsoft OfficeがインストールされていなくてもExcelファイルを操作できる、複数のExcelフォーマット(XLS、XLSX、CSV)のサポート、.NETアプリケーションとの互換性が向上し、パフォーマンスと展開の容易さが得られるなどの利点があります。
BlazorプロジェクトにIronXLをインストールするにはどうすればよいですか?
BlazorプロジェクトにIronXLをインストールするには、Visual Studioでパッケージマネージャーコンソールを開き、Install-Package IronXL.Excelコマンドを実行します。これにより、ライブラリがインストールされ、Excelファイルをプログラム的に操作できるようになります。
Blazorでの変換に対応したIronXLのExcelファイル形式は何ですか?
IronXLは、Blazorでの変換に対応したさまざまなExcelファイル形式をサポートしています。これには、.xls、.xlsx、.xlsm、.xltx、および.csvが含まれ、アプリケーション内でのExcelデータの柔軟な処理を可能にします。
Blazorアプリケーションでファイルアップロードコンポーネントを作成するにはどうすればよいですか?
Blazorアプリケーションでファイルアップロードコンポーネントを作成するには、Microsoft.AspNetCore.Components.Formsの`InputFile`コンポーネントを使用します。このコンポーネントにより、ユーザーがファイルをアップロードでき、そのファイルをExcelからCSVへの変換などのタスクに必要なIronXLを使用して処理できます。
IronXLの無料トライアルはありますか?
はい、IronXLは購入前にその機能と能力を試すことができる無料トライアルを提供しています。トライアル期間終了後は、プロジェクトのニーズに応じたさまざまなライセンスオプションを選択できます。



