フッターコンテンツにスキップ
IRONXLの使用

C# DataGridView書式付きExcelへのエクスポート:完全ガイド

C# DataGridView Export to Excel with Formatting:完全ガイド:画像1 - C#のDataGridViewからExcelへの書式設定付きエクスポート

DataGridViewのデータをExcelファイルにエクスポートすることは、Windows Formsアプリケーションでは一般的な要件です。 レポートを作成するにしても、分析のためにデータを転送するにしても、開発者はフォーマットを保持しながら DataGridView のコンテンツをエクスポートする信頼できる方法を必要としています。 この記事では、Microsoft Excelをインストールすることなく完璧に動作する最新のアプローチであるIronXLを使用して、DataGridViewをExcelにエクスポートする方法を紹介します。

今IronXLを始めましょう。
green arrow pointer

DataGridViewエクスポートのためのWindowsフォームプロジェクトのセットアップ方法

従来のアプローチでは、Microsoft Excel Object LibraryのCOMタブを通じて参照を追加する必要がありました。 しかし、この方法には大きな欠点があります。すべてのマシンにMicrosoft Excelがインストールされている必要があり、private void releaseobjectメソッドによる複雑なオブジェクトの解放パターンが含まれ、大きなExcelファイルではうまく動作しません。

IronXLはこのような問題を完全に解決します。 Visual Studioでは、NuGetパッケージマネージャ経由でインストールするだけで、リファレンスの追加メニューを選択したり、COMタブに移動したりする必要はありません。 このライブラリは、Microsoft Officeに依存することなく、すべてのデータエクスポート操作を処理します。

まず、Visual Studio で新しい Windows Forms プロジェクトを作成し、次の名前空間をフォームに追加します:

using IronXL;
using System.Data;
using IronXL;
using System.Data;
$vbLabelText   $csharpLabel

フォームにDataGridViewコントロールとボタンを追加します。 DataGridViewコントロールはエクスポート前にデータを表示し、ボタンはエクスポートDataGridView操作をトリガーします。

どのように DataGridView コントロールにデータをロードできますか?

Form Load イベントは、DataGridView にデータを入力するのに理想的です。 次のコードサンプルは、DataTableDataGridViewコントロールにバインドするデモです:

private void Form1_Load(object sender, EventArgs e)
{
    // Create DataTable with sample data
    DataTable dt = new DataTable();
    dt.Columns.Add("ProductID", typeof(int));
    dt.Columns.Add("ProductName", typeof(string));
    dt.Columns.Add("Price", typeof(decimal));
    dt.Columns.Add("Stock", typeof(int));
    // Add rows with values
    dt.Rows.Add(1, "Laptop", 999.99, 50);
    dt.Rows.Add(2, "Mouse", 29.99, 200);
    dt.Rows.Add(3, "Keyboard", 79.99, 150);
    dt.Rows.Add(4, "Monitor", 349.99, 75);
    dataGridView1.DataSource = dt;
}
private void Form1_Load(object sender, EventArgs e)
{
    // Create DataTable with sample data
    DataTable dt = new DataTable();
    dt.Columns.Add("ProductID", typeof(int));
    dt.Columns.Add("ProductName", typeof(string));
    dt.Columns.Add("Price", typeof(decimal));
    dt.Columns.Add("Stock", typeof(int));
    // Add rows with values
    dt.Rows.Add(1, "Laptop", 999.99, 50);
    dt.Rows.Add(2, "Mouse", 29.99, 200);
    dt.Rows.Add(3, "Keyboard", 79.99, 150);
    dt.Rows.Add(4, "Monitor", 349.99, 75);
    dataGridView1.DataSource = dt;
}
$vbLabelText   $csharpLabel

入力可能なデータテーブル

C# DataGridView Export to Excel with Formatting:完全ガイド:画像2 - 私たちのフォームのUI

このコードでは、4 つの列を持つ DataTable dt<//code> を作成し、Add メソッドを使用して DataGridView<//code> の行にサンプルの値を入力しています。 DataGridViewコントロールは、DataTableをデータソースとして受け入れ、データを表形式で表示します。 最初の列には整数のIDが、他の列には文字列と10進数の値が格納されています。

DataGridViewのデータをExcelファイルにエクスポートするには? ボタンのクリック・イベント・ハンドラには、中核となるエクスポート・ロジックが含まれています。 XLのアプローチは従来の方法とは異なります; `DataGridView`のコンテンツは、`DataTable`の中間ステップを経由してExcelファイルに直接エクスポートできます: ```cs private void btnExport_Click(object sender, EventArgs e) { try { // Convert DataGridView to DataTable DataTable dt = new DataTable(); foreach (DataGridViewColumn column in dataGridView1.Columns) dt.Columns.Add(column.HeaderText); foreach (DataGridViewRow row in dataGridView1.Rows) { if (!row.IsNewRow) { DataRow dataRow = dt.NewRow(); for (int i = 0; i < dataGridView1.Columns.Count; i++) dataRow[i] = row.Cells[i].Value; dt.Rows.Add(dataRow); } } // Create workbook and export WorkBook workbook = WorkBook.Create(); WorkSheet worksheet = workbook.DefaultWorkSheet; worksheet.LoadFromDataTable(dt, true); workbook.SaveAs("C:\\Reports\\Export.xlsx"); MessageBox.Show("Export complete!"); } catch (Exception ex) { MessageBox.Show($"Error: {ex.Message}"); } } ``` ### DataGridViewからExcelへの出力 [C# DataGridView Export to Excel with Formatting:完全ガイド:画像3 - 生成されたExcelファイル](/static-assets/excel/blog/datgridview-excel/datgridview-excel-3.webp)。 `object sender, EventArgs e` パラメータを持つこのボタンクリックイベントハンドラは、`DataGridView` の行と列のすべてのデータを繰り返し処理し、`DataTable` を構築します。 `LoadFromDataTable`メソッドは、`DataTable`を受け取り、ワークシートに入力します。 ワークブックオブジェクトは、指定された場所に保存されます。 IronXLはまた、Microsoft Interopで一般的なメモリの問題なしに、大きなExcelファイルを効率的にエクスポートすることができます。 ## エクスポートした Excel ファイルに書式を適用するにはどうすればよいですか? フォーマットされたExcelファイルを作成するには、ヘッダー行とセルにスタイルを設定する必要があります。 この例では、ヘッダー行の背景色と交互行のスタイリングを適用しています: ```cs private void ExportWithFormatting(object sender, EventArgs e) { WorkBook workbook = WorkBook.Create(); WorkSheet worksheet = workbook.DefaultWorkSheet; // Add header row string[] headers = { "ID", "Name", "Price", "Stock" }; for (int col = 0; col < headers.Length; col++) { worksheet.SetCellValue(0, col, headers[col]); worksheet[$"{(char)('A' + col)}1"].Style.Font.Bold = true; worksheet[$"{(char)('A' + col)}1"].Style.SetBackgroundColor("#4472C4"); } // Add data with alternating row colors int rowIndex = 1; foreach (DataGridViewRow row in dataGridView1.Rows) { if (row.IsNewRow) continue; for (int col = 0; col < dataGridView1.Columns.Count; col++) { worksheet.SetCellValue(rowIndex, col, row.Cells[col].Value?.ToString()); } // Apply alternating background colors if (rowIndex % 2 == 0) { var range = worksheet[$"A{rowIndex + 1}:D{rowIndex + 1}"]; range.Style.SetBackgroundColor("#D6DCE5"); } rowIndex++; } workbook.SaveAs("C:\\Reports\\FormattedExport.xlsx"); } ``` ### フォーマットされたエクセルファイルの出力 [C# DataGridView Export to Excel with Formatting:完全ガイド:画像4 - 生成されたフォーマットされたExcelファイルの出力](/static-assets/excel/blog/datgridview-excel/datgridview-excel-4.webp)。 この C# `DataGridView` から Excel へのエクスポート (書式設定付き) の例では、最初の行を太字フォントと背景色でスタイル付きヘッダー行として設定します。 コードは、読みやすさを向上させるために、交互に並ぶスタイルを適用しています。 IronXLの包括的な[スタイル設定API](/csharp/excel/how-to/cell-font-size/)を使用して、異なるフォントスタイル、塗りつぶしパターン、ボーダー設定でセルをカスタマイズすることができます。 ## 結論 Windowsフォーム・アプリケーションの`DataGridView`からExcelへのエクスポートは、IronXLで簡単になります。 COMタブ参照や複雑なオブジェクトのクリーンアップコードを必要とする従来のMicrosoft Excel Object Libraryのアプローチとは異なり、IronXLは書式付きExcelファイルを作成するためのクリーンでモダンなAPIを提供します。 このライブラリは、基本的なデータからExcelへのエクスポート、ヘッダー行の背景色のスタイリングや交互の行を含む洗練されたフォーマットされたExcelファイルの生成まで、すべてを処理します。 大きなExcelファイルを処理するアプリケーションでは、IronXLはMicrosoft Excelをインストールすることなく優れたパフォーマンスを発揮します。 `DataGridView`からExcelへのワークフローを効率化する準備はできましたか? [無料トライアル](trial-license)を今すぐ開始するか、[IronXLライセンスオプション](/csharp/excel/licensing/)をご検討ください。

よくある質問

DataGridViewデータをC#でExcelにエクスポートするにはどうしたらいいですか?

IronXLを使用すると、データ操作とエクスポートのための強力な機能を活用して、C#でDataGridViewのデータをExcelファイルに簡単にエクスポートできます。

DataGridViewをExcelにエクスポートする際、どのようなフォーマットオプションがありますか?

IronXLでは、DataGridViewをExcelにエクスポートする際に、ヘッダーのスタイルや行の色の変更など、さまざまなフォーマットオプションを適用することができます。

Windows FormsアプリケーションでDataGridViewのデータをExcelにエクスポートすることは可能ですか?

DataGridViewのデータをWindows FormsアプリケーションのIronXL.Excelにエクスポートすることができます。

DataGridViewをExcelにエクスポートするときに、ヘッダーのスタイルを設定できますか?

IronXLでは、DataGridViewのデータをExcelにエクスポートする際に、カスタムフォント、カラー、その他のフォーマットオプションでヘッダをスタイルすることができます。

DataGridViewからエクスポートする際、Excelで行の色を交互に適用するにはどうすればよいですか?

IronXLを使用すると、DataGridViewからデータをエクスポートする際に、Excelシートに行の色を交互に適用することができます。

C#でDataGridViewをExcelにエクスポートするには、特別なライブラリが必要ですか?

IronXLのようなライブラリを使用することで、C#でDataGridViewをExcelにエクスポートするプロセスが簡素化され、データハンドリングとフォーマットのための堅牢なツールが提供されます。

DataGridViewからExcelへのエクスポートにIronXLを使用する利点は何ですか?

IronXLは使いやすさ、包括的なフォーマットオプション、Windowsフォームとの互換性などの利点を提供し、DataGridViewをExcelにエクスポートするのに理想的です。

カーティス・チャウ
テクニカルライター

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

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。