IRONSOFTWAREHOME
IRONXLの使用

BlazorでCSVにエクスポートする方法

Curtis Chau
Curtis Chau
Updated: 2026年4月21日

今日は、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のパッケージマネージャーコンソールを開き、次のコマンドを実行します。

PM > Install-Package IronXL.Excel

このコマンドは、BlazorプロジェクトにIronXLライブラリをインストールします。 これでコードを書き始める準備が整いました!

ファイルアップロードコンポーネントの作成

まず、ユーザーが既存のExcelファイルをアップロードできる基本的なファイルアップロードコンポーネントを作成します。それから、Microsoft.AspNetCore.Components.Forms名前空間から追加します。 次のコードを@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>
Text

このコードは、ボタンとファイル変換の状況を表示するメッセージエリアを備えたファイルアップロードコンポーネントを設定します。 InputFileコンポーネントにおいて受け入れ可能なファイル形式を指定します。

ファイル変換コードの作成

次に、ファイルのアップロードと変換を処理するコードを書きます。 このタスクを達成するために、IronXL、Blazor、C#の組み合わせを使用します。 IronXLを使用してCSVをExcelファイルに変換できます。

次のコードを、先に追加したdiv要素の下にIndex.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}";
        }
    }
}
Text

このコードはInputFileコンポーネントを使ってExcelスプレッドシートがアップロードされるとトリガーされます。 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}";
        }
    }
}
Text

さらにコードを細かく見ていきましょう:

  1. ファイルがアップロードされるとInputFileChangeEventArgsオブジェクトがそれに渡されます。 このオブジェクトには、アップロードされたファイルの名前やサイズなどの情報が含まれています。
  2. オリジナルのファイル名をoriginalFileNameという変数に保存し、ページに表示します。
  3. try-catchブロック内で、新たにMemoryStreamオブジェクトを作成してアップロードされたファイルの内容を読み取ります。 usingステートメントは、メモリストリームがもう必要なくなったときに適切に破棄されることを保証します。
  4. awaitキーワードを使用して、アップロードされたファイルの内容を非同期でメモリストリームにコピーします。 これにより、ファイルを読み込んでいる間もこのアプリケーションが応答性を保ちます。
  5. 次に、WorkBookオブジェクトに読み込みます。 このオブジェクトはシート、セル、データを含むExcel全体のワークブックを表します。
  6. 変換されたCSVファイルの出力ファイル名を指定します。このケースでは、"sample.csv"という名前を使用しています。
  7. WorkBookオブジェクトのSaveAsCsvメソッドを使用して、指定された出力ファイル名のCSVファイルとしてワークブックを保存します。
  8. 変換が成功すると、変換が完了したことを示すメッセージが表示されます。 エラーが発生した場合は、例外をキャッチしてエラーメッセージを表示します。

アプリケーションのテスト

Blazorアプリケーションが完成したので、テストする時が来ました! F5を押して、Visual Studioでアプリケーションを実行します。 アプリケーションが実行されると、ページ上にファイルアップロードボタンが表示されるはずです。

BlazorでCSVにエクスポートする方法、図1: Blazorアプリケーションを実行する Blazorアプリケーションの実行

ボタンをクリックし、アップロードするExcelファイルを選択します。 受け入れ可能なファイル形式はInputFileコンポーネントのaccept属性にリストされています。

BlazorでCSVにエクスポートする方法、図2: Excelファイルの選択 Excelファイルの選択

ファイルを選択した後、アプリケーションはファイルを読み込み、IronXLを使用してCSV形式に変換し、指定された出力ファイル名で変換後のファイルを保存します。 変換の状態とオリジナルのファイル名を表示するメッセージが表示されるはずです。

BlazorでCSVにエクスポートする方法、図3: 変換状態 変換の状態

おめでとうございます! IronXLを使用してExcelファイルをCSV形式にエクスポートできるBlazorアプリケーションの構築に成功しました。 次のスクリーンショットは、このプログラムの出力を示しています。

BlazorでCSVにエクスポートする方法、図4: 出力されたExcelファイル 出力されたExcelファイル

結論

このチュートリアルでは、IronXLを使用してExcelファイルをCSV形式にエクスポートできるBlazorアプリケーションを構築する方法を示しました。 ファイルアップロードコンポーネントの作成、ファイルのアップロード処理、およびIronXLの強力な機能を使用したExcelファイルのCSV形式への変換の方法を説明しました。

BlazorアプリケーションにIronXLを組み込むことで、Excel関連の様々なタスクを簡単に扱うことができ、データのインポート、操作、エクスポートが可能になります。 これは、プロジェクトに多くの可能性を開き、ユーザーによりリッチな体験を提供するのに役立ちます。 IronXLライブラリを使用してBlazorでCSVをExcelに変換できます。

IronXLは無料トライアルを提供しており、購入を検討する前にその機能と性能を試すことができます。 トライアル期間の終了後、IronXLのライセンスは$999から始まります。

Curtis Chau
テクニカルライター

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

...
詳しく読む

関連する記事

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
無料のライブデモを予約する
Booking Badge

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。