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

IronXL を使用して C# で GridView を書式付きで Excel にエクスポートする

C# を使用して GridView データを書式付きで Excel にエクスポートする

セルの色、フォント、書式設定を保持しながら GridView データを Excel にエクスポートすることは、ASP.NET Web 開発、特に世界中のユーザー (en-US) を対象とするアプリケーションではよくある課題です。 書式設定された C# プロセスを含む GridView を Excel にエクスポートする処理はサーバー上で処理され、データ バインディング、レンダリング、および出力書式設定が管理されます。 new HtmlTextWriternew 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 StringWriternew 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);
        }
    }
}
$vbLabelText   $csharpLabel

この例では、 object senderEventArgs 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 はフォント、色、セル スタイルなどのさまざまな書式設定オプションをサポートしており、エクスポートされた Excel ファイルがプロフェッショナルな外観になり、意図したデザインが維持されます。

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 コントロールからデータを効果的に処理してエクスポートし、結果の Excel ファイルで階層と書式を維持できます。

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ボットを作成したりして、技術に対する愛情と創造性を組み合わせています。