IRONXLの使用 IronXLを使用したC#フォーマット付きExcelへのGridViewエクスポート カーティス・チャウ 公開日:2026年1月12日 IronXL をダウンロード NuGet ダウンロード DLL ダウンロード 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる Grokで開く このページについてGrokに質問する 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る C# を使用して GridView データを書式付きで Excel にエクスポートする セルの色、フォント、書式設定を保持しながら GridView データを Excel にエクスポートすることは、ASP.NET Web 開発、特に世界中のユーザー (en-US) を対象とするアプリケーションではよくある課題です。 書式設定された C# プロセスを含む GridView を Excel にエクスポートする処理はサーバー上で処理され、データ バインディング、レンダリング、および出力書式設定が管理されます。 new HtmlTextWriterとnew StringWriterを使用してコントロール出力を書き込む従来の方法では、多くの場合、形式の警告を含む Excel ファイルが生成します。 一部の開発者はpublic override void VerifyRenderingInServerForm ; を使用した回避策を見つけました。 エクスポート プロセス中の実行時エラーを回避するには、 VerifyRenderingInServerFormイベントを追加する必要があります。 ただし、この方法では HTML ベースのファイルが作成され、MS Excel で正しくレンダリングされない可能性があります。 Excel に正常にエクスポートするには、GridView をrunat="server"を含むフォーム タグ内に配置する必要があります。 デフォルトでは、 ExportAllオプションや最大行数など、明示的に変更しない限り、特定のエクスポート オプションまたは設定が適用される場合があります。 C# と VB.NET の両方の実装では、エクスポート ロジックは通常、ボタン クリック イベントからトリガーされます。イベント ハンドラー シグネチャには、C# のobject sender, EventArgs eや、VB.NET のByVal sender As Object, ByVal e As EventArgsなどのパラメーターが含まれます。 IronXL は、Microsoft Office をインストールする必要がなく、完全な書式設定制御を備えたネイティブ Excel ファイルを作成する、よりクリーンなソリューションを提供します。 この記事では、ASP.NET Web フォームと Windows フォーム アプリケーションの両方で GridView を Excel にエクスポートする方法を説明します。 データのエクスポートの概要 GridView から Excel ファイルにデータをエクスポートすることは、多くの ASP.NET および Windows フォーム アプリケーションの基本的な機能です。 レポート ダッシュボードを構築する場合でも、オフライン分析用にデータをダウンロードする機能をユーザーに提供する場合でも、GridView コンテンツを Excel シートにエクスポートする機能により、MS Excel でデータにアクセスし、簡単に操作できるようになります。 このプロセスでは通常、必要な書式とスタイルを維持しながら、行、列、セルなどの GridView コントロールの値を構造化された Excel ファイルに転送します。 適切に設計された Excel へのエクスポート ソリューションは、単にデータをコピーするだけにとどまりません。 また、文字列のスタイルを保持し、読みやすくするために行の色を交互に適用し、ユーザーがファイルを添付ファイルとしてダウンロードできるように正しいコンテンツ配置を設定します。 開発者は、多くの場合、public override void VerifyRenderingInServerForm などのメソッドを利用して ASP.NET での実行時エラーを回避し、 Response.AddHeaderを使用してファイル名と添付ファイルの種類を指定し、プログラムで Excel ファイルを作成する方法を示すpublic override void VerifyRenderingInServerFormを使用します。 Windows フォームでは、エクスポート プロセスは同様ですが、ファイルはブラウザーにストリーミングされるのではなく、システムに直接保存されます。 フォーマット設定はプロフェッショナルなエクスポートの重要な側面です。 フォント、背景色、境界線をカスタマイズすることで、エクスポートされた Excel シートがアプリケーションの外観と操作性に一致するようにすることができます。 new StringWriterやnew HtmlTextWriterなどのオブジェクト、あるいはより高度なライブラリを使用することで、Excelファイルの出力と構造を制御できます。エラー処理も不可欠です。例外( Exception exなど)をキャッチすることで、エクスポート処理中に問題が発生した場合でも、スムーズなユーザーエクスペリエンスを提供できます。 オブジェクト センダーを使用して、Windows フォームの DataGridView をセルの書式設定付きで Excel ファイルにエクスポートする方法 最も信頼性の高い方法は、GridView の基盤となる DataTable を抽出し、スタイル設定された Excel シートをプログラムで構築することです。 このアプローチにより、フォーマット エラーを回避し、ヘッダー スタイル、交互の行の色、境界線を完全に制御できます。 ページでページングを使用している場合は、すべてのレコードを取得するためにエクスポート前にページングを無効にすることに注意してください。 Windows フォーム アプリケーションでは、Web ベースの GridView ではなく DataGridView コントロールが使用されます。 Excel へのエクスポート プロセスは同じパターンに従います。つまり、行とセルのコレクションからセルの値を抽出し、書式を適用します。 using IronXL; using IronXL.Styles; using System; using System.Data; using System.IO; using System.Windows.Forms; private void btnExport_Click(object sender, EventArgs e) { DataTable dt = (DataTable)GridView1.DataSource; WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet workSheet = workBook.DefaultWorkSheet; // Export header row with formatting for (int col = 0; col < dt.Columns.Count; col++) { workSheet.SetCellValue(0, col, dt.Columns[col].ColumnName); var cell = workSheet.GetCellAt(0, col); cell.Style.Font.Bold = true; cell.Style.SetBackgroundColor("#4472C4"); cell.Style.Font.Color = "#FFFFFF"; cell.Style.BottomBorder.Type = BorderType.Thin; } // Export data rows with alternating row color for (int row = 0; row < dt.Rows.Count; row++) { for (int col = 0; col < dt.Columns.Count; col++) { var cellValue = dt.Rows[row][col]; workSheet.SetCellValue(row + 1, col, cellValue?.ToString() ?? ""); var cell = workSheet.GetCellAt(row + 1, col); string bgColor = (row % 2 == 0) ? "#D6DCE5" : "#FFFFFF"; cell.Style.SetBackgroundColor(bgColor); cell.Style.BottomBorder.Type = BorderType.Thin; } } // Save and write response for download MemoryStream stream = workBook.ToStream(); using (SaveFileDialog saveFileDialog = new SaveFileDialog()) { saveFileDialog.Filter = "Excel Files|*.xlsx"; saveFileDialog.Title = "Save Excel File"; saveFileDialog.FileName = "GridViewExport.xlsx"; if (saveFileDialog.ShowDialog() == DialogResult.OK) { using (FileStream fileStream = new FileStream(saveFileDialog.FileName, FileMode.Create, FileAccess.Write)) { stream.WriteTo(fileStream); } MessageBox.Show("Export successful.", "Export", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } using IronXL; using IronXL.Styles; using System; using System.Data; using System.IO; using System.Windows.Forms; private void btnExport_Click(object sender, EventArgs e) { DataTable dt = (DataTable)GridView1.DataSource; WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet workSheet = workBook.DefaultWorkSheet; // Export header row with formatting for (int col = 0; col < dt.Columns.Count; col++) { workSheet.SetCellValue(0, col, dt.Columns[col].ColumnName); var cell = workSheet.GetCellAt(0, col); cell.Style.Font.Bold = true; cell.Style.SetBackgroundColor("#4472C4"); cell.Style.Font.Color = "#FFFFFF"; cell.Style.BottomBorder.Type = BorderType.Thin; } // Export data rows with alternating row color for (int row = 0; row < dt.Rows.Count; row++) { for (int col = 0; col < dt.Columns.Count; col++) { var cellValue = dt.Rows[row][col]; workSheet.SetCellValue(row + 1, col, cellValue?.ToString() ?? ""); var cell = workSheet.GetCellAt(row + 1, col); string bgColor = (row % 2 == 0) ? "#D6DCE5" : "#FFFFFF"; cell.Style.SetBackgroundColor(bgColor); cell.Style.BottomBorder.Type = BorderType.Thin; } } // Save and write response for download MemoryStream stream = workBook.ToStream(); using (SaveFileDialog saveFileDialog = new SaveFileDialog()) { saveFileDialog.Filter = "Excel Files|*.xlsx"; saveFileDialog.Title = "Save Excel File"; saveFileDialog.FileName = "GridViewExport.xlsx"; if (saveFileDialog.ShowDialog() == DialogResult.OK) { using (FileStream fileStream = new FileStream(saveFileDialog.FileName, FileMode.Create, FileAccess.Write)) { stream.WriteTo(fileStream); } MessageBox.Show("Export successful.", "Export", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } Imports IronXL Imports IronXL.Styles Imports System Imports System.Data Imports System.IO Imports System.Windows.Forms Private Sub btnExport_Click(sender As Object, e As EventArgs) Handles btnExport.Click Dim dt As DataTable = DirectCast(GridView1.DataSource, DataTable) Dim workBook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX) Dim workSheet As WorkSheet = workBook.DefaultWorkSheet ' Export header row with formatting For col As Integer = 0 To dt.Columns.Count - 1 workSheet.SetCellValue(0, col, dt.Columns(col).ColumnName) Dim cell = workSheet.GetCellAt(0, col) cell.Style.Font.Bold = True cell.Style.SetBackgroundColor("#4472C4") cell.Style.Font.Color = "#FFFFFF" cell.Style.BottomBorder.Type = BorderType.Thin Next ' Export data rows with alternating row color For row As Integer = 0 To dt.Rows.Count - 1 For col As Integer = 0 To dt.Columns.Count - 1 Dim cellValue = dt.Rows(row)(col) workSheet.SetCellValue(row + 1, col, If(cellValue?.ToString(), "")) Dim cell = workSheet.GetCellAt(row + 1, col) Dim bgColor As String = If(row Mod 2 = 0, "#D6DCE5", "#FFFFFF") cell.Style.SetBackgroundColor(bgColor) cell.Style.BottomBorder.Type = BorderType.Thin Next Next ' Save and write response for download Dim stream As MemoryStream = workBook.ToStream() Using saveFileDialog As New SaveFileDialog() saveFileDialog.Filter = "Excel Files|*.xlsx" saveFileDialog.Title = "Save Excel File" saveFileDialog.FileName = "GridViewExport.xlsx" If saveFileDialog.ShowDialog() = DialogResult.OK Then Using fileStream As New FileStream(saveFileDialog.FileName, FileMode.Create, FileAccess.Write) stream.WriteTo(fileStream) End Using MessageBox.Show("Export successful.", "Export", MessageBoxButtons.OK, MessageBoxIcon.Information) End If End Using End Sub $vbLabelText $csharpLabel この例では、 object senderとEventArgs eパラメータを使用してボタン クリック ハンドラーを作成します。 このコードは、GridView のDataSourceプロパティを DataTable にキャストし、データ テーブル内のすべての値にアクセスできるようにします。 WorkBook.Createメソッドは新しい Excel ファイルを初期化し、 DefaultWorkSheetアクティブなワークシートを返します。 エクスポート時にSheetNameプロパティを通じてシート名を指定できます。 DataGridView エクスポートは、 HeaderTextプロパティを通じて列ヘッダーにアクセスします。 セルの値は、行と列のインデックスを使用してCellsコレクションから取得されます。 null 条件演算子を持つvarキーワードは、null を空の文字列に変換して空のセルを処理します。 Responseを使用して Web ダウンロード用のファイルを書き込む ASP.NET とは異なり、Windows フォームはシステムに直接保存します。 IronXL は、形式の警告なしで MS Excel で開くことができるネイティブの XLSX または XLS 形式のファイルを作成します。 出力 ! IronXL を使用した C# で GridView を Excel にフォーマットしてエクスポート: 画像 1 - GridView 出力 ! IronXL を使用した C# で GridView を Excel にフォーマットしてエクスポート: 画像 2 - Excel 出力 ! IronXL を使用した C# での GridView の Excel へのエクスポート: 画像 3 - メッセージ出力 結論 IronXL は、Excel への GridView のエクスポートを、書式設定の課題から簡単なプロセスに変えます。 ライブラリは、Office に依存せずに、ヘッダーのスタイル設定、行の交互の色、条件付き書式、境界線を処理します。 このチュートリアルが、.NET アプリケーションでプロフェッショナルな Excel エクスポートを作成する際に役立つことを願っています。 無料トライアルを開始して、GridView データをフォーマット付きでエクスポートするか、展開用のライセンス オプションを調べてください。 サポートと詳細については、ドキュメントを参照してください。 よくある質問 C#でGridViewのデータをExcelにエクスポートするには? IronXLライブラリを使用することで、C#でGridViewデータをExcelにエクスポートすることができます。プログラムでExcelファイルを作成し、書式やスタイルを含むデータを簡単にエクスポートできます。 なぜGridViewデータのエクスポートにIronXLを使う必要があるのですか? IronXLは直感的なAPIでGridViewデータのエクスポートプロセスを簡素化し、従来の方法では困難であったフォーマットの維持やスタイルの適用を容易にします。 IronXLはGridViewをExcelにエクスポートする際にフォーマットをサポートしていますか? IronXLはフォント、色、セルスタイルなど様々なフォーマットオプションをサポートしています。 GridViewデータから生成されたExcelファイルの外観をカスタマイズできますか? IronXLはExcelファイルのカスタマイズオプションを提供しており、GridViewからエクスポートする際に、セルスタイル、フォント、色などを特定の要件に合わせて調整することができます。 IronXLを使って大きなGridViewデータセットをExcelにエクスポートすることはできますか? IronXLは大規模なデータセットを効率的に扱うことができ、パフォーマンス上の問題なく、大規模なGridViewデータをExcelにエクスポートすることができます。 IronXLを使ってGridViewデータをExcelにエクスポートする利点は何ですか? IronXLはGridViewデータのエクスポートにおいて、より合理的で柔軟なアプローチを提供し、フォーマット、カスタマイズ、大規模なデータセットの取り扱いを強力にサポートします。 GridViewをExcelにエクスポートする際、データの整合性を維持するにはどうすればよいですか? IronXLは、GridViewからExcelへのエクスポートプロセスにおいて、データタイプとフォーマットを正確に変換し保持することで、データの整合性を保証します。 IronXLは複雑な構造のGridViewコントロールからデータをエクスポートできますか? IronXLは複雑な構造を持つGridViewコントロールのデータを効果的に処理し、エクスポートすることができます。 IronXLはどのようなファイル形式でGridViewデータをエクスポートできますか? IronXLは主にXLSXのようなExcel形式にデータをエクスポートしますが、CSVのような他の形式もサポートしており、ニーズに応じて柔軟に対応できます。 IronXLを使用した条件付き書式付きGridViewのエクスポートはサポートされていますか? IronXLは条件付き書式をサポートしており、GridViewデータをExcelにエクスポートする際に、セルの値に基づいて動的に調整するルールやスタイルを設定することができます。 カーティス・チャウ 今すぐエンジニアリングチームとチャット テクニカルライター Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。 関連する記事 公開日 2026年2月15日 C#でOleDbとIronXLを使用してDataTableをExcelにエクスポートする方法 C#でOleDbとIronXLを使用してDataTableをExcelにエクスポートする方法を学びます。 詳しく読む 公開日 2026年2月15日 IronXLを使用してOfficeがインストールされていないVB.NETで既存のExcelファイルを開く方法 IronXLを使用して、OfficeがインストールされていないVB.NETで既存のExcelファイルを開く方法について説明します。 詳しく読む 公開日 2026年2月15日 C# CSV to XLSX: 完全な開発者ガイド IronXLを使用してC#でCSVをXLSXに変換します。CSVファイルを読み込み、データ型を保持し、グラフを追加し、Microsoft Officeに依存せずにExcel形式にエクスポートします。 詳しく読む IronXLを使用してGridViewをExcel XLSX C#にエクスポートするデータセットをExcelにエク...
公開日 2026年2月15日 C#でOleDbとIronXLを使用してDataTableをExcelにエクスポートする方法 C#でOleDbとIronXLを使用してDataTableをExcelにエクスポートする方法を学びます。 詳しく読む
公開日 2026年2月15日 IronXLを使用してOfficeがインストールされていないVB.NETで既存のExcelファイルを開く方法 IronXLを使用して、OfficeがインストールされていないVB.NETで既存のExcelファイルを開く方法について説明します。 詳しく読む
公開日 2026年2月15日 C# CSV to XLSX: 完全な開発者ガイド IronXLを使用してC#でCSVをXLSXに変換します。CSVファイルを読み込み、データ型を保持し、グラフを追加し、Microsoft Officeに依存せずにExcel形式にエクスポートします。 詳しく読む