IRONSOFTWAREHOME
IRONXLの使用

IronXLを使用して C# で DataGridView を Excel にエクスポートする

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

C#でIronXLを使用してExcelにDataGridViewデータをエクスポートします。これにより、Microsoft Officeの依存が排除され、コンテナーフレンドリーなデプロイメントが提供されます。 DataGridViewセルを反復し、完全な書式設定サポートでXLSX形式に保存します。

Windows FormsのDataGridViewからExcelへのデータエクスポートは、ビジネスアプリケーションで一般的な要件です。 レポートの生成、データバックアップの作成、ステークホルダーとの情報共有など、開発者はGridViewデータをExcel形式にエクスポートする信頼性のある方法が必要です。 Microsoft Office Interop を使用した従来のアプローチは、この目的には十分対応できていましたが、展開の複雑さや依存関係の要件が伴い、アプリケーションの配布を複雑化させる可能性がありました。

このチュートリアルでは、Microsoft Officeのインストールを必要としない.NETライブラリであるIronXLを使用して、C#の実際の例でDataGridViewデータをExcelにエクスポートする方法を示します。 クラウドプラットフォームやコンテナなど、さまざまな環境で動作する、クリーンで効率的なエクスポートソリューションを実装する方法を探求します。 Azureへのデプロイであれ、Dockerコンテナでのアプリケーション実行であれ、 IronXLはDevOpsチームが必要とするデプロイの柔軟性を提供します。

IronXLのホームページでは、Microsoft OfficeやExcel InteropなしでExcelファイルを読み取るC#コードの例を、構文ハイライトとNuGetダウンロード統計を特徴として紹介しています。

なぜExcelへのDataGridViewエクスポートが重要なのか?

Windows Formsアプリケーションにおいて、DataGridViewコントロールは基本的な要素であり、ユーザーが日常的に操作する表データを表示します。 このデータをExcelにエクスポートすることで、ユーザーはExcelの強力な分析ツールを活用したり、プレゼンテーションを作成したり、アプリケーションにアクセスできない同僚とデータを共有したりすることが可能になります。 このC#によるExcelエクスポート機能は、ビジネスレポート作成やデータ分析のワークフローにとって非常に重要です。

従来のMicrosoft.Office.Interop.Excelを使用するエクスポート方法では、アプリケーションを実行するすべてのマシンにExcelをインストールする必要があります。 これにより、特にサーバー環境や Office ライセンスがないユーザーへのアプリケーション配布時に、デプロイメントの課題が生じます。 さらに、Interop のアプローチは、注意深く対処しない場合、メモリリークや COM オブジェクトのクリーンアップの問題に苦しむことがあります。 これらの課題は、AWS Lambdaやその他のサーバーレスプラットフォームにデプロイする場合、特に深刻になります。これらのプラットフォームでは、Officeのインストールは現実的ではないためです。

モダンな .NET アプリケーションには、より柔軟なソリューションが求められています。 IronXLは、Microsoft Officeに依存することなくExcelファイルを生成するスタンドアロンライブラリを提供することで、これらの課題に対処します。 このアプローチにより、開発、テスト、本番環境全体で一貫した機能が確保されるとともに、コンテナやクラウドプラットフォームへのデプロイもサポートされます。

クロスプラットフォームサポートの図には、複数のバージョン(9、8、7、6、Core、Standard、Framework)にわたる.NETの互換性を示し、Windows、Linux、Mac、Docker、Azure、AWSなどのプラットフォームのアイコンが表示されています。

IronXLとInteropの比較は?

以下の表は、 IronXLとMicrosoft Office Interop for Excelのエクスポートシナリオにおける主な違いをまとめたものです。

IronXLとMicrosoft OfficeのExcelエクスポートにおける相互運用性の比較
特徴IronXLMicrosoft Interop
オフィスへのインストールが必要ですなしはい
Linux / Docker サポートはいなし
COMオブジェクトのクリーンアップ不要手作業で、エラーが発生しやすい
メモリリークのリスク低い処分されない場合は高額になる
クラウド/サーバーレス展開サポートされていますサポートされていません
エクスポート形式(XLSX、CSV、JSON、XML)すべてサポートされています制限あり

IronXLをC#プロジェクトにインストールする方法

Visual Studio のパッケージ マネージャー コンソールを開き、次のコマンドを実行するか、 .NET CLI を使用します。

PM > Install-Package IronXL.Excel

ターミナル出力には、C#プロジェクトにおけるIronXL.Excel NuGetパッケージとその依存関係の正常にインストールされた様子が表示されています

詳細なインストール方法については、IronXL NuGet インストールガイドを参照するか、NuGet.org で直接パッケージを検索してください。 インストール後、C#プロジェクトファイルにusing IronXL;を追加して、ライブラリのExcelエクスポート機能にアクセスします。 本番環境にデプロイする際は、ライセンスキーを適用してすべての機能を有効にしてください。 IronXLは、購入前に無料トライアルライセンスを取得して評価することができます。

基本的なDataGridViewのエクスポートはどのようなものですか?

以下のコードは、データで埋められたDataGridViewを持つWindows Formsアプリケーションのサンプルを作成し、IronXLのトップレベルステートメントを使用してそれをExcelにエクスポートします:

using IronXL;
using System.Data;
using System.Windows.Forms;

// Create a DataTable with sample product data
var dt = new DataTable();
dt.Columns.Add("Product ID", typeof(int));
dt.Columns.Add("Product Name", typeof(string));
dt.Columns.Add("Category", typeof(string));
dt.Columns.Add("Price", typeof(decimal));
dt.Columns.Add("Stock", typeof(int));

dt.Rows.Add(1001, "Laptop Pro", "Electronics", 1299.99m, 15);
dt.Rows.Add(1002, "Wireless Mouse", "Accessories", 29.99m, 50);
dt.Rows.Add(1003, "USB-C Cable", "Accessories", 19.99m, 100);
dt.Rows.Add(1004, "Monitor 27\"", "Electronics", 399.99m, 8);
dt.Rows.Add(1005, "Keyboard Mechanical", "Accessories", 89.99m, 25);

// Bind to DataGridView
var dataGridView1 = new DataGridView();
dataGridView1.DataSource = dt;

// Create new Excel workbook
var workbook = WorkBook.Create(ExcelFileFormat.XLSX);
var worksheet = workbook.DefaultWorkSheet;

// Export column headers
for (int colIndex = 0; colIndex < dataGridView1.Columns.Count; colIndex++)
{
    worksheet.SetCellValue(0, colIndex, dataGridView1.Columns[colIndex].HeaderText);
}

// Export data rows
for (int rowIndex = 0; rowIndex < dataGridView1.Rows.Count; rowIndex++)
{
    if (!dataGridView1.Rows[rowIndex].IsNewRow)
    {
        for (int colIndex = 0; colIndex < dataGridView1.Columns.Count; colIndex++)
        {
            var cellValue = dataGridView1.Rows[rowIndex].Cells[colIndex].Value;
            if (cellValue is decimal or double or int)
                worksheet.SetCellValue(rowIndex + 1, colIndex, Convert.ToDouble(cellValue));
            else
                worksheet.SetCellValue(rowIndex + 1, colIndex, cellValue?.ToString() ?? string.Empty);
        }
    }
}

// Save the Excel file
workbook.SaveAs("DataGridViewExport.xlsx");
Console.WriteLine("Export completed successfully!");

このコードは、コアエクスポート機能を示しています。 DataGridViewコントロールのデータソースとして使用されるサンプル製品データでグリッドを埋めます。 大規模なデータセットを扱う場合は、パフォーマンス向上のためにIronXLのDataSetインポートおよびエクスポート機能の利用をご検討ください。

エクスポートループはSetCellValueで行と列のインデックスを使用して、ヘッダーとデータの両方をExcelセルに配置します。 IronXLのドキュメントには、より複雑なシナリオに対応するための追加のセル書き込みオプションが記載されています。 DataGridViewsの一番下の空の行をスキップし、予期しない空白行のないクリーンなExcel出力を保証します。

Windows Formsアプリケーションは、製品ID、名前、カテゴリ、価格、在庫列を含む商品のデータで埋められたDataGridViewを示し、下には

Microsoft Excelスプレッドシートには、エレクトロニクスおよびコンピュータアクセサリの製品データがエクスポートされ、製品ID、製品名、カテゴリ、価格、および在庫レベルの列が表示されています。

この機能をWebベースのASP.NET MVCアプリケーションに実装する場合、Content-Disposition HTTPヘッダーを使用してダウンロード可能な応答としてファイルを返すアプローチを拡張します。 ASP.NET WebForms開発者の場合、適切なレンダリングを確保するためにエクスポート時にVerifyRenderingInServerFormをオーバーライドする必要があるかもしれません。 サポートされているシナリオの完全なリストについては、 IronXLの機能ページをご覧ください。

ExcelのエクスポートファイルにProfessional書式設定を追加するにはどうすればよいですか?

プロフェッショナルな Excel エクスポートには、読みやすさを向上させるためのフォーマットが必要なことがよくあります。 IronXLは、フォントのカスタマイズ、背景色、枠線、配置など、スタイリング機能を提供します。 以下の例では、ヘッダーの書式設定と行の交互の色付けを追加しています。

using IronXL;
using System.Data;
using System.Windows.Forms;

// Assume dataGridView1 is already populated with data
var dataGridView1 = new DataGridView();

// (populate dataGridView1 with data as shown in the previous example)

var workbook = WorkBook.Create(ExcelFileFormat.XLSX);
var worksheet = workbook.DefaultWorkSheet;

// Set column headers with formatting
for (int colIndex = 0; colIndex < dataGridView1.Columns.Count; colIndex++)
{
    var headerCell = worksheet.GetCellAt(0, colIndex);
    headerCell.Value = dataGridView1.Columns[colIndex].HeaderText;
    headerCell.Style.Font.Bold = true;
    headerCell.Style.BackgroundColor = "#4472C4";
    headerCell.Style.Font.Color = "#FFFFFF";
    headerCell.Style.HorizontalAlignment = IronXL.Styles.HorizontalAlignment.Center;
}

// Export data with alternating row colors
for (int rowIndex = 0; rowIndex < dataGridView1.Rows.Count; rowIndex++)
{
    if (!dataGridView1.Rows[rowIndex].IsNewRow)
    {
        for (int colIndex = 0; colIndex < dataGridView1.Columns.Count; colIndex++)
        {
            var cellValue = dataGridView1.Rows[rowIndex].Cells[colIndex].Value;
            var excelCell = worksheet.GetCellAt(rowIndex + 1, colIndex);

            if (cellValue != null)
                excelCell.Value = cellValue.ToString();

            // Apply alternating row background
            if (rowIndex % 2 == 0)
                excelCell.Style.BackgroundColor = "#F2F2F2";
        }
    }
}

// Auto-fit columns
for (int colIndex = 0; colIndex < dataGridView1.Columns.Count; colIndex++)
{
    worksheet.AutoSizeColumn(colIndex);
}

workbook.SaveAs("FormattedExport.xlsx");
Console.WriteLine("Formatted export completed successfully!");

この強化版では、エクスポートされたExcelファイルにProfessional書式設定が適用されます。ヘッダーは太字で、背景は青、文字色は白となり、データ行との視覚的な区別が明確になります。 このコードは、剰余演算を用いて行の色を交互に変化させることで、大規模なデータセットにおける可読性を向上させています。 IronXLのセル書式設定ガイドを使用して外観をさらにカスタマイズしたり、セルの結合機能を使用してヘッダー列をまたがって表示したりすることができます。

AutoSizeColumnメソッドは、エクスポート後の手動調整を排除して、コンテンツに合わせて列幅を調整します。 これらのフォーマットオプションは基本的なデータエクスポートを即座に共有できるプレゼンテーション対応ドキュメントに変えます。 IronXL を使用した Excel ファイル書き込み方法については、こちらを参照して、その他の書式設定やデータ書き込みのパターンをご確認ください。

複数の形式でエクスポートしたり、数式を追加したりするにはどうすればよいですか?

IronXLは基本的なExcelエクスポート機能にとどまらず、数式サポート、複数ワークシート、代替出力形式などの機能を提供します。 以下の例は、これらの機能を示しています。

using IronXL;

var workbook = WorkBook.Create(ExcelFileFormat.XLSX);
var worksheet = workbook.DefaultWorkSheet;

// (populate worksheet with DataGridView data as shown above)
int dataRowCount = 5; // Replace with actual dataGridView1.Rows.Count

// Add a SUM formula to calculate the total price column
worksheet.SetCellValue(dataRowCount + 2, 3, $"=SUM(D2:D{dataRowCount + 1})");

// Create a summary worksheet
var summarySheet = workbook.CreateWorkSheet("Summary");
summarySheet.SetCellValue(0, 0, "Total Products");
summarySheet.SetCellValue(0, 1, dataRowCount);

// Save in multiple formats
workbook.SaveAs("export.xlsx");
workbook.SaveAsCsv("export.csv");
workbook.SaveAsJson("export.json");
workbook.SaveAsXml("export.xml");

Console.WriteLine("Multi-format export completed!");

IronXLはExcelの数式をサポートしており、計算式をエクスポートファイルに直接追加できます。 上記の例では、列の合計を自動的に計算するSUM式が追加されています。 複数のワークシートの作成は、詳細なデータと要約情報を分離するなど、複雑なエクスポートを整理するのに役立ちます。 ワークシート管理のその他のパターンについては、Excel ファイル作成に関する IronXL のハウツーガイドをご覧ください。

フォーマットの柔軟性は、特にシステム統合のシナリオにおいて非常に価値があります。 XLSXはExcelファイルの標準形式ですが、CSV形式でのエクスポートは、データベースシステムや旧式のアプリケーションとの普遍的な互換性を提供します。 JSONおよびXML形式は、WebサービスやAPIとのデータ交換を容易にします。また、毎回新しいファイルを作成するのではなく、既存のワークブックを開いて、エクスポートしたデータを既存のスプレッドシートに追加することも可能です。

さまざまなエクスポート形式を比較するとどう違うのか?

Excelスプレッドシートには、製品ID、名前、カテゴリ、価格、在庫の列があり、D9セルに1839.95の合計式の結果が表示されています。

Excelスプレッドシートの

Excelスプレッドシートには、製品ID、製品名、カテゴリ、価格、および在庫数の列が示され、D9セルには1839.95の合計が表示されています。

コードエディタインターフェイスには、製品ID、名前、カテゴリ、価格、および在庫のフィールドを含む製品データを示すJSONファイルが表示されています。

製品情報(ID、名前、カテゴリ、価格、在庫レベル)がシート要素に整理された状態でエクスポートされたDataGridViewデータを示すXMLファイル

IronXLはどのようにしてC#開発ワークフローを簡素化しますか?

IronXLの最大の利点は、Microsoft Officeへの依存関係を排除できる点です。 開発者のワークステーション、顧客のマシン、またはDockerコンテナのいずれにデプロイしても、アプリケーションは一貫して動作します。 この独立性はデプロイを簡素化し、Office のバージョンやインストールに関連するサポート問題を削減します。 MicrosoftのOpen XML SDKもOffice不要の代替手段の一つですが、IronXLの高レベルAPIと比較すると、かなり多くの定型コードが必要になります。 クロスプラットフォーム for .NET 10開発に関するガイダンスについては、 Microsoft for .NETドキュメントに、プラットフォームターゲット、展開モデル、およびWindows Forms固有の事項が記載されています。

ライブラリの API 設計はシンプルさを優先しています。 InteropのCOMベースのアプローチは慎重なオブジェクト破棄を必要とするのに対し、 IronXLはC#開発者にとって自然な標準的な.NETパターンを採用している。 クロスプラットフォーム対応とは、Windows Forms向けに構築されたエクスポート機能を、Linuxサーバー上で動作するASP.NET Coreアプリケーションで再利用できることを意味します。 利用可能な機能の概要については、 IronXLの機能ページをご覧ください。

Excelからデータをインポートすることもでき、エクスポートする前にDataGridViewを事前に入力し、ユーザーがExcelデータを読み込み、グリッドで編集し、結果を再びExcelにエクスポートする一連のワークフローを作成します。 Excelファイル読み込みガイドでは、インポートに関する詳細を解説しています。

IronXLは、機密データを扱う際に、ワークブックレベルおよびワークシートレベルのパスワード保護をサポートしています。 IronXLのドキュメントには、エクスポートしたファイルを配布前に保護する必要があるシナリオにおけるセキュリティオプションが記載されています。

Excelライブラリの機能の概要を示し、作成、保存とエクスポート、ワークブックの編集、データ操作、ワークブックのセキュリティ、レイアウトオプションの編集が6つの主要カテゴリーとして示されています。

制作現場での使用に関するライセンスオプションにはどのようなものがありますか?

IronXLを本番環境に導入するには、有効なライセンスキーが必要です。 無料トライアルライセンスから始めれば、すべての機能を評価のために利用できます。 IronXLのライセンスページで、シングル開発者ライセンスから無制限のEnterprise展開まで、利用可能なライセンス階層の詳細をご確認ください。

IronXLの機能を使用する前に、アプリケーションにライセンスキーを適用してください。

IronXL.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";

この一行のコードで、アプリケーションプロセスの存続期間中、ライブラリが有効になります。 ウェブアプリケーションやサービスの場合、起動時にライセンスキーを設定することで、すべてのリクエストがウォーターマークなしでフル機能を利用できるようになります。

なぜC#でExcelエクスポートにIronXLを選択するべきか?

IronXLを使用すると、DataGridViewデータのExcelへのエクスポートが簡単になります。 ライブラリは、従来の Interop の複雑さを排除し、プロフェッショナルなフォーマット機能と複数のエクスポート形式を提供します。 コンテナ対応のアーキテクチャ、最小限の依存関係、そしてクロスプラットフォーム対応により、最新のDevOpsワークフローに最適です。

IronXLのホームページは、ライブラリ全体を探索するための出発点です。 マイクロサービスの構築、Kubernetesクラスターへのデプロイ、サーバーレス関数の実行など、 IronXLはCI/CDパイプラインにスムーズに統合できます。 Excel へのエクスポート手順ガイドでは、さまざまなエクスポートシナリオに対応した追加のパターンが紹介されており、ワークブックの開く方法に関するガイドでは、既存のファイルの読み取りや変更について解説しています。

まずは無料トライアルライセンスで、すべての機能を体験してみてください。 IronXLのチュートリアルとコード例は、実運用に対応したソリューションを迅速に実装するのに役立ちます。 個々の開発者向けライセンスから無制限のEnterprise展開まで、導入ニーズに合わせた柔軟なライセンスオプションからお選びいただけます。 IronXLの利用開始に関するご質問は、 IronXLのドキュメントハブでAPIリファレンス、コードサンプル、トラブルシューティングガイドをご覧いただけます。

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