IRONXLの使用 C#でDataGridViewをExcelにエクスポートする方法 Curtis Chau 更新日:6月 20, 2025 Download IronXL NuGet Download テキストの検索と置換 Start Free Trial Copy for LLMs Copy for LLMs Copy page as Markdown for LLMs Open in ChatGPT Ask ChatGPT about this page Open in Gemini Ask Gemini about this page Open in Grok Ask Grok about this page Open in Perplexity Ask Perplexity about this page Share Share on Facebook Share on X (Twitter) Share on LinkedIn Copy URL Email article This tutorial provides a comprehensive guide on how to export data from a DataGridView control in a Windows Forms Application to an Excel file using the IronXL library in C#. 私たちの焦点は、C#プロジェクトにMicrosoft Excel機能を統合したい初心者にシームレスな体験を提供することにあります。 DataGridViewからExcelへのC#でのエクスポート方法 Visual StudioでC# Windows Formsプロジェクトを作成します。 NuGetパッケージマネージャを使用してExcelライブラリをインストールします。 Windows FormのUIにDataGridViewとボタンを作成します。 DataGridViewにデータソースをアタッチします。 ボタンのクリックイベントハンドラにデータエクスポートロジックを適用します。 IronXL の旅を始めるには、ほんの数ステップが必要です。 IronXLは、.NET FrameworkアプリケーションでExcel文書を扱うプロセスを簡素化する強力なライブラリです。 これにより、大きなExcelファイルをエクスポートし、複雑なデータソースを処理し、Microsoft Excel Object Libraryを使用せずに.NET Excelファイル操作を広範にサポートすることができます。 プロジェクトをセットアップしましょう。 プロジェクトのセットアップ 1. 新しいWindows Formsアプリケーションの作成 Visual Studioを開き、新しいWindows Formsアプリケーションを作成します。 これは、DataGridViewデータをExcelファイルにエクスポートする機能を実装するためのプロジェクトの基盤となります。 2. IronXLのインストール IronXLはプロジェクトに簡単に追加できます。 Visual Studioで、「NuGetパッケージの管理」オプションに移動し、IronXLを検索してインストールします。 この操作により、C#でDataGridViewをExcelにエクスポートするために必要な依存関係が全て処理されます。 3. ユーザーインターフェイスの準備 フォームにDataGridViewコントロールを追加します。 このコントロールは、エクスポートしようとするデータを保持します。 さらに、エクスポートプロセスをトリガーするボタンを追加します。 「Excelへのエクスポート」などのラベルを付けることができます。 エクスポート機能の実装 このセクションでは、IronXLを使用してWindows FormsアプリケーションのDataGridViewからExcelドキュメントにデータをエクスポートする機能をプログラムする方法について詳しく説明します。 アプリケーションの構築 まず、フォームにDataGridViewコントロールを追加する必要があります。 このコントロールは、エクスポートする前にデータが表示される主なコンポーネントです。 Visual StudioのツールボックスからフォームにDataGridViewをドラッグすることで簡単に追加できます。 また、ExcelファイルにDataGridViewデータをエクスポートするためのボタンを追加できます。 次のステップは、データをDataGridViewにロードすることです。 このデータは、DataTableやDataSetなど、さまざまなソースから取得できます。 始めたばかりの方は、プログラムで新しい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; } 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; } Private Sub BindDataToDataGridView() ' Create a new DataTable. Dim dataTable As New DataTable() ' Define columns for the DataTable. dataTable.Columns.Add("Employee ID", GetType(Integer)) dataTable.Columns.Add("Name", GetType(String)) dataTable.Columns.Add("Department", GetType(String)) dataTable.Columns.Add("Joining Date", GetType(DateTime)) ' Add sample data to the DataTable. For i As Integer = 1 To 25 dataTable.Rows.Add(i, "Employee " & i, "Department " & (i Mod 5 + 1), DateTime.Now.AddDays(-i * 15)) Next i ' Bind the DataTable to the DataGridView. dataGridView1.DataSource = dataTable End Sub $vbLabelText $csharpLabel ボタンクリックイベントの処理 ユーザーとの主なやり取りポイントは、Windowsフォーム内のボタンになります。 このボタンは、クリックされたときにエクスポートプロセスを開始します。 このやり取りを設定する方法は次のとおりです: Windowsフォームでは、DataGridViewデータをエクスポートする専用のボタンが必要です。 このボタンにはC#コード内でイベントハンドラメソッドがあります。 このメソッドは、ユーザーがボタンをクリックしたときにトリガされます。 private void btnExport_Click(object sender, EventArgs e) { // Code to export data will go here } private void btnExport_Click(object sender, EventArgs e) { // Code to export data will go here } Private Sub btnExport_Click(ByVal sender As Object, ByVal e As EventArgs) ' Code to export data will go here End Sub $vbLabelText $csharpLabel DataGridViewからのデータエクスポート DataGridViewのデータをエクスポートするには、まずIronXL名前空間を参照する必要があります: using IronXL; using IronXL; Imports IronXL $vbLabelText $csharpLabel イベントハンドラ内では、最初のステップとして新しいワークブックとワークシートをIronXLを使って初期化します。 ここにDataGridViewからのデータが転送されます。 WorkBookオブジェクトは、Excelファイル全体を表します。 ワークブック内のWorkSheetは、Excelファイルの個々のページまたはタブのようなものです。 ここでは、ワークブックを作成し、それにワークシートを追加します。 ワークシートには「ExportedData」という名前が付けられていますが、アプリケーションのコンテキストに応じた任意の名前を選ぶことができます。 WorkBook workbook = WorkBook.Create(); WorkSheet worksheet = workbook.CreateWorkSheet("ExportedData"); WorkBook workbook = WorkBook.Create(); WorkSheet worksheet = workbook.CreateWorkSheet("ExportedData"); Dim workbook As WorkBook = WorkBook.Create() Dim worksheet As WorkSheet = workbook.CreateWorkSheet("ExportedData") $vbLabelText $csharpLabel Excelシートのデータ入力 次のステップでは、DataGridViewの行と列を通じて繰り返し処理し、それぞれのセルのデータを対応するExcelワークシートのセルにコピーすることが含まれます。 外部ループは各行を進行し、内部ループはそれぞれの行内のすべての列を通過します。 DataGridViewの各セルの値をExcelワークシートの対応するセルに割り当てます。 これは、行用のインデックスiと列用のインデックス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(); } } 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(); } } For i As Integer = 0 To dataGridView1.Rows.Count - 1 For j As Integer = 0 To dataGridView1.Columns.Count - 1 ' Convert row and column index to Excel cell address format Dim cellAddress As String = ConvertToCellAddress(i, j) worksheet(cellAddress).Value = dataGridView1.Rows(i).Cells(j).Value.ToString() Next j Next i $vbLabelText $csharpLabel 行と列のインデックスを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; } 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; } Private Function ConvertToCellAddress(ByVal row As Integer, ByVal column As Integer) As String ' Columns in Excel are labeled as A, B, C, ..., Z, AA, AB, ..., etc. ' The following code converts a column index to this format. Dim columnLabel As String = "" Do While column >= 0 columnLabel = ChrW(AscW("A"c) + column Mod 26) & columnLabel column = column \ 26 - 1 Loop ' Rows in Excel are labeled as 1, 2, 3, ..., n ' Adding 1 because Excel is 1-based and our loop is 0-based. Dim rowLabel As String = (row + 1).ToString() Return columnLabel & rowLabel End Function $vbLabelText $csharpLabel Excelファイルの保存 すべてのデータが転送された後、次のステップはこのワークブックをExcelファイルとして保存することです。このステップにより、指定されたパスにExcelファイルがシステム上に作成されます。 workbook.SaveAs("DataGridViewExport.xlsx"); MessageBox.Show("Data exported successfully!", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information); workbook.SaveAs("DataGridViewExport.xlsx"); MessageBox.Show("Data exported successfully!", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information); workbook.SaveAs("DataGridViewExport.xlsx") MessageBox.Show("Data exported successfully!", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information) $vbLabelText $csharpLabel エラーハンドリング データエクスポートプロセスにおいて、例外を処理することは、アプリケーションの安定性を確保するために重要です。 try-catchブロックでエクスポートロジックをラップすることで、ファイルアクセス権限やデータフォーマットの問題など、エクスポート中に発生する可能性のある問題が優雅にキャッチされ処理されることが保証されます。 try { // Export logic } catch (Exception ex) { MessageBox.Show("An exception occurred: " + ex.Message); } try { // Export logic } catch (Exception ex) { MessageBox.Show("An exception occurred: " + ex.Message); } Try ' Export logic Catch ex As Exception MessageBox.Show("An exception occurred: " & ex.Message) End Try $vbLabelText $csharpLabel 出力 プログラムを実行すると次のインターフェースが表示されます: ここで、DataGridViewにデータが表示されているのがわかります。 次に、エクスポートボタンをクリックします。 これにより、DataGridViewからExcelファイルにデータがエクスポートされます。 ここでは、メッセージボックスが表示され、データがExcelファイルにエクスポートされているのがわかります。これが出力されたExcelファイルです。 結論 このガイドに従うことにより、C#とIronXLを使用してDataGridViewデータをExcelファイルにエクスポートする基本的かつ強力なツールを手に入れることができました。 この機能は、データ分析、レポート、またはさまざまな形式間でデータを移行する必要があるアプリケーションにとって重要です。 DataGridViewコントロールとIronXLライブラリのさまざまな機能を試すことで、よりカスタマイズされた高度な実装が可能になることを覚えておいてください。 IronXLは、その機能を探索するために無料トライアルを提供しています。 ライセンスは$liteLicenseから始まり、.NETアプリケーションでExcelファイルの操作のための信頼性と効率的なソリューションを求めるプロフェッショナルや組織にとって価値ある投資です。 あなたの旅はここで終わりません。 IronXLの機能と、Windows Formsアプリケーションを強化する他の方法をさらに探求し続けてください。 コーディングを楽しんでください! よくある質問 C#でDataGridViewからExcelファイルにデータをエクスポートするにはどうすればよいですか? IronXLライブラリを使用して、C#でDataGridViewからExcelファイルにデータをエクスポートできます。これには、Windows Formsプロジェクトの作成、NuGetを介したIronXLのインストール、およびDataGridViewからExcelワークシートへのデータ転送ロジックの実装が含まれます。 ExcelにエクスポートするためのDataGridViewの設定に必要な手順は何ですか? 手順には、Windows FormsプロジェクトでDataGridViewを作成し、データソースにバインドし、フォームにボタンを追加し、IronXLライブラリを使用してボタンのクリックイベントハンドラにエクスポートロジックを書き込むことが含まれます。 Visual Studio プロジェクトに IronXL をインストールする方法を教えてください。 Visual StudioプロジェクトにIronXLをインストールするには、「NuGetパッケージを管理」に移動し、IronXLを検索し、C#でDataGridViewをExcelにエクスポートするために必要なすべての依存関係を処理するためにそれをインストールします。 IronXLを使用して大きなExcelファイルをエクスポートできますか? はい、IronXLはMicrosoft Excelオブジェクトライブラリを必要とせずに大規模なデータセットを処理する堅牢な機能を提供して、大きなExcelファイルのエクスポートを可能にします。 DataGridViewエクスポートチュートリアルでのボタンの役割は何ですか? チュートリアルのボタンはエクスポートプロセスをトリガーします。クリックすると、IronXLライブラリを使用してDataGridViewからExcelファイルにデータを転送するロジックを実行します。 IronXLはDataGridViewからExcelへのデータ転送をどのように処理しますか? IronXLはDataGridViewの行と列を反復処理し、それぞれのセルのデータを対応するExcelワークシートセルにコピーすることでデータ転送を促進します。 IronXLを使用したエクスポートプロセス中のエラーをどのように管理できますか? try-catchブロックにエクスポートロジックをラップして例外をキャッチして処理することでエラーを管理し、ファイルアクセス許可の問題などが発生した場合でも円滑な操作を保証できます。 DataGridViewからデータをエクスポートした後にExcelファイルをどのように保存しますか? データがIronXLを使用してExcelワークシートに転送されたら、IronXLのSaveAsメソッドを使用してファイルをシステムに保存できます。 IronXLの機能をテストするための無料トライアルは利用可能ですか? はい、IronXLは.NETアプリケーションでのExcelファイル操作の機能を探求するための無料トライアルを提供しています。さらなる開発のためのライセンス情報もあります。 Curtis Chau 今すぐエンジニアリングチームとチャット テクニカルライター Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。 関連する記事 公開日 10月 27, 2025 C#でExcelピボットテーブルを作成する方法 この明確なステップバイステップガイドを使用して、C# InteropとIronXLを使用してExcelでピボットテーブルを作成する方法を学びましょう。 詳しく読む 公開日 10月 27, 2025 C#で列ヘッダー付きのDataGridViewをExcelにエクスポートする方法 IronXLライブラリを使用したステップバイステップのC#チュートリアルで、列ヘッダーを保持しながらDataGridViewデータをExcelにエクスポートする方法を学びましょう。 詳しく読む 公開日 10月 27, 2025 .NET Core CSVリーダーとしてのIronXLの使用方法 実用的な例とともにIronXLを.NET Core CSVリーダーとして効果的に使用する方法を学びましょう。 詳しく読む C#コンソールアプリケーションでExcelファイルを読む方法C#でCSVファイルからデータ...
公開日 10月 27, 2025 C#でExcelピボットテーブルを作成する方法 この明確なステップバイステップガイドを使用して、C# InteropとIronXLを使用してExcelでピボットテーブルを作成する方法を学びましょう。 詳しく読む
公開日 10月 27, 2025 C#で列ヘッダー付きのDataGridViewをExcelにエクスポートする方法 IronXLライブラリを使用したステップバイステップのC#チュートリアルで、列ヘッダーを保持しながらDataGridViewデータをExcelにエクスポートする方法を学びましょう。 詳しく読む
公開日 10月 27, 2025 .NET Core CSVリーダーとしてのIronXLの使用方法 実用的な例とともにIronXLを.NET Core CSVリーダーとして効果的に使用する方法を学びましょう。 詳しく読む