IRONSOFTWAREHOME
IRONXLの使用

How to Export Datagridview To Excel in C#

Curtis Chau
Curtis Chau
Updated: 2026年6月28日

このチュートリアルは、C#でIronXLライブラリを使用してWindows FormsアプリケーションのDataGridViewコントロールからExcelファイルにデータをエクスポートするための包括的なガイドを提供します。 私たちの焦点は、C#プロジェクトにMicrosoft Excel機能を統合したい初心者にシームレスな体験を提供することにあります。

How to Export DataGridView to Excel in C#

  1. Visual StudioでC# Windows Formsプロジェクトを作成します。
  2. NuGetパッケージマネージャを使用してExcelライブラリをインストールします。
  3. Windows FormのUIにDataGridViewとボタンを作成します。
  4. DataGridViewにデータソースをアタッチします。
  5. ボタンのクリックイベントハンドラにデータエクスポートロジックを適用します。

IronXLの始め方

IronXLは、.NET FrameworkアプリケーションでExcel文書を扱うプロセスを簡素化する強力なライブラリです。 これにより、大きなExcelファイルをエクスポートし、複雑なデータソースを処理し、Microsoft Excel Object Libraryを使用せずに.NET Excelファイル操作を広範にサポートすることができます。 プロジェクトをセットアップしましょう。

プロジェクトのセットアップ

1. 新しいWindows Formsアプリケーションの作成

Visual Studioを開き、新しいWindows Formsアプリケーションを作成します。 これは、DataGridViewデータをExcelファイルにエクスポートする機能を実装するためのプロジェクトの基盤となります。

DataGridViewをExcelにエクスポートする方法 C#: 図1 - Visual Studioで新しいWindows Formsアプリケーションを作成

2. IronXLのインストール

IronXLはプロジェクトに簡単に追加できます。 Visual Studioで、"NuGetパッケージの管理"オプションに移動し、IronXLを検索してインストールします。 この操作により、C#でDataGridViewをExcelにエクスポートするために必要な依存関係が全て処理されます。

DataGridViewをExcelにエクスポートする方法 C#: 図2 - NuGetパッケージマネージャーを通してIronXLライブラリをインストール

3. ユーザーインターフェイスの準備

フォームにDataGridViewコントロールを追加します。 このコントロールは、エクスポートしようとするデータを保持します。 さらに、エクスポートプロセスをトリガーするボタンを追加します。 "Excelへのエクスポート"などのラベルを付けることができます。

エクスポート機能の実装

このセクションでは、IronXLを使用してWindows FormsアプリケーションのDataGridViewからExcelドキュメントにデータをエクスポートする機能をプログラムする方法について詳しく説明します。

アプリケーションの構築

まず、フォームにDataGridViewコントロールを追加する必要があります。 このコントロールは、エクスポートする前にデータが表示される主なコンポーネントです。 Visual StudioのツールボックスからフォームにDataGridViewをドラッグすることで簡単に追加できます。 また、ExcelファイルにDataGridViewデータをエクスポートするためのボタンを追加できます。

DataGridViewをExcelにエクスポートする方法 C#: 図3 - DataGridViewのデータをExcelファイルにエクスポートするボタンの追加

次のステップは、データをDataGridViewにロードすることです。 このデータは、DataSetなど、さまざまなソースから取得できます。 もし最初に始める場合、DataTableをプログラムで作成し、サンプルデータで動作を確認することもできます。 また、外部ソースからデータをインポートすることもできます。 ここでの重要なポイントは、DataGridViewにデータソースをバインドすることであり、これは実質的にデータをグリッドにリンクします。 データがDataGridViewにバインドされると、フォーム上のグリッドに表示されます。

private void BindDataToDataGridView()
{
    // Create a new DataTable.
    DataTable dataTable = new DataTable();
    // Define columns for the DataTable.
    dataTable.Columns.Add("Employee ID", typeof(int));
    dataTable.Columns.Add("Name", typeof(string));
    dataTable.Columns.Add("Department", typeof(string));
    dataTable.Columns.Add("Joining Date", typeof(DateTime));
    // Add sample data to the DataTable.
    for (int i = 1; i <= 25; i++)
    {
        dataTable.Rows.Add(i, "Employee " + i, "Department " + (i % 5 + 1), DateTime.Now.AddDays(-i * 15));
    }
    // Bind the DataTable to the DataGridView.
    dataGridView1.DataSource = dataTable;
}

ボタンクリックイベントの処理

ユーザーとの主なやり取りポイントは、Windowsフォーム内のボタンになります。 このボタンは、クリックされたときにエクスポートプロセスを開始します。 このやり取りを設定する方法は次のとおりです:

  • Windowsフォームでは、DataGridViewデータをエクスポートする専用のボタンが必要です。
  • このボタンにはC#コード内でイベントハンドラメソッドがあります。 このメソッドは、ユーザーがボタンをクリックしたときにトリガされます。
private void btnExport_Click(object sender, EventArgs e)
{
    // Code to export data will go here
}

DataGridViewからのデータエクスポート

DataGridViewのデータをエクスポートするには、まずIronXL名前空間を参照する必要があります:

using IronXL;

イベントハンドラ内では、最初のステップとして新しいワークブックとワークシートをIronXLを使って初期化します。 ここにDataGridViewからのデータが転送されます。

  • WorkBookオブジェクトは、Excelファイル全体を表します。
  • ワークブック内のWorkSheetは、Excelファイルの個別のページまたはタブのようなものです。

ここでは、ワークブックを作成し、それにワークシートを追加します。 ワークシートには"ExportedData"という名前が付けられていますが、アプリケーションのコンテキストに応じた任意の名前を選ぶことができます。

WorkBook workbook = WorkBook.Create();
WorkSheet worksheet = workbook.CreateWorkSheet("ExportedData");

Excelシートのデータ入力

次のステップでは、DataGridViewの行と列を通じて繰り返し処理し、それぞれのセルのデータを対応するExcelワークシートのセルにコピーすることが含まれます。

  • 外部ループは各行を進行し、内部ループはそれぞれの行内のすべての列を通過します。
  • DataGridViewの各セルの値をExcelワークシートの対応するセルに割り当てます。 これは、行のjのインデックスを使用して行われます。
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
    for (int j = 0; j < dataGridView1.Columns.Count; j++)
    {
        // Convert row and column index to Excel cell address format
        string cellAddress = ConvertToCellAddress(i, j);
        worksheet[cellAddress].Value = dataGridView1.Rows[i].Cells[j].Value.ToString();
    }
}

行と列のインデックスをExcelのセルアドレスに変換するには、以下のようなヘルパーメソッドを使用できます:

private string ConvertToCellAddress(int row, int column)
{
    // Columns in Excel are labeled as A, B, C, ..., Z, AA, AB, ..., etc.
    // The following code converts a column index to this format.
    string columnLabel = "";
    while (column >= 0)
    {
        columnLabel = (char)('A' + column % 26) + columnLabel;
        column = column / 26 - 1;
    }
    // Rows in Excel are labeled as 1, 2, 3, ..., n
    // Adding 1 because Excel is 1-based and our loop is 0-based.
    string rowLabel = (row + 1).ToString();
    return columnLabel + rowLabel;
}

Excelファイルの保存

すべてのデータが転送された後、次のステップはこのワークブックをExcelファイルとして保存することです。このステップにより、指定されたパスにExcelファイルがシステム上に作成されます。

workbook.SaveAs("DataGridViewExport.xlsx");
MessageBox.Show("Data exported successfully!", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);

エラーハンドリング

データエクスポートプロセスにおいて、例外を処理することは、アプリケーションの安定性を確保するために重要です。 try-catchブロックでエクスポートロジックをラップすることで、ファイルアクセス権限やデータフォーマットの問題など、エクスポート中に発生する可能性のある問題が優雅にキャッチされ処理されることが保証されます。

try
{
    // Export logic
}
catch (Exception ex)
{
    MessageBox.Show("An exception occurred: " + ex.Message);
}

出力

プログラムを実行すると次のインターフェースが表示されます:

DataGridViewをExcelにエクスポートする方法 C#: 図4 - 前のコードの出力形式

ここで、DataGridViewにデータが表示されているのがわかります。 次に、エクスポートボタンをクリックします。 これにより、DataGridViewからExcelファイルにデータがエクスポートされます。

DataGridViewをExcelにエクスポートする方法 C#: 図5 - エクスポート成功のメッセージ

ここでは、メッセージボックスが表示され、データがExcelファイルにエクスポートされているのがわかります。これが出力されたExcelファイルです。

DataGridViewをExcelにエクスポートする方法 C#: 図6 - 前のフォームをエクスポートした出力Excelファイル

結論

このガイドに従うことにより、C#とIronXLを使用してDataGridViewデータをExcelファイルにエクスポートする基本的かつ強力なツールを手に入れることができました。 この機能は、データ分析、レポート、またはさまざまな形式間でデータを移行する必要があるアプリケーションにとって重要です。 DataGridViewコントロールとIronXLライブラリのさまざまな機能を試すことで、よりカスタマイズされた高度な実装が可能になることを覚えておいてください。

IronXLは、その機能を探索するために無料トライアルを提供しています。 ライセンスは$999から始まり、.NETアプリケーションでExcelファイルの操作のための信頼性と効率的なソリューションを求めるプロフェッショナルや組織にとって価値ある投資です。

あなたの旅はここで終わりません。 IronXLの機能と、Windows Formsアプリケーションを強化する他の方法をさらに探求し続けてください。 コーディングを楽しんでください!

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日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。