IRONXLの使用 IronXLを使用して C# で DataGridView を Excel にエクスポートする方法 カーティス・チャウ 更新日:2026年3月1日 IronXL をダウンロード NuGet ダウンロード DLL ダウンロード 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる Grokで開く このページについてGrokに質問する 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る IronXL を使用すると、DataGridView から Excel ファイルにデータをエクスポートするには、わずか数行の C# コードが必要です。 WorkBook を作成し、グリッドの列と行を反復処理し、各セルの値をワークシートに書き込み、SaveAs を呼び出して、完全にフォーマットされた .xlsx ファイルを生成します。Microsoft Office のインストールは不要です。 WindowsフォームプロジェクトをExcelにエクスポートするように設定するにはどうすればよいですか? Windows Formsは、 .NETエコシステムにおける基礎的なGUIライブラリであり、デスクトップアプリケーションの構築に広く利用されています。 DataGridView コントロールは、最もよく使用されるコンポーネントの 1 つです。これは、DataTable、データベース クエリの結果、メモリ内のリストなど、バインド可能なソースからの表形式データを表示、編集、管理します。 そのグリッドデータをExcelにエクスポートすることで、関係者へのレポート送信、監査用のスナップショットのアーカイブ、下流の分析ツールへのデータ供給など、日常的なさまざまなニーズに対応できます。 従来のアプローチとしては、Microsoft オフィス相互運用とサードパーティ製ライブラリの2つが挙げられる。 相互運用性を実現するには、アプリケーションを実行するすべてのマシンにExcelがインストールされている必要があり、COMオブジェクトのライフサイクルに関する問題が発生し、サーバーやクラウド環境でのパフォーマンスが低下します。 IronXL 、ClosedXML、 Syncfusionなどのライブラリは、Officeに依存することなくOpen XMLファイル形式に直接書き込むことで、これらの問題を回避します。 このガイドでは、 .NET 10 を対象とした C# でのIronXL のアプローチを説明しますが、 IronXL は.NET Framework 4.6.2 およびすべての最新 for .NETバージョンをサポートしています。 前提条件 エクスポートコードを記述する前に、以下の点が満たされていることを確認してください。 Visual Studio 2022以降 .NET 10 SDK がインストールされています DataGridView コントロールを含む Windows フォーム アプリ プロジェクト IronXLをインストールするためのNuGetアクセス IronXLのインストール方法を教えてください Visual Studio のパッケージ マネージャー コンソールを開き、以下のいずれかのコマンドを実行します。 Install-Package IronXL dotnet add package IronXL Install-Package IronXL dotnet add package IronXL SHELL または、ソリューションエクスプローラーでプロジェクトを右クリックし、 [NuGetパッケージの管理]を選択して、IronXl.Excel を検索し、 [インストール] をクリックします。 インストール後、Excelの機能を使用するすべてのファイルの先頭にIronXLのusingディレクティブを追加してください。 using IronXL; using System.Data; using IronXL; using System.Data; Imports IronXL Imports System.Data $vbLabelText $csharpLabel IronXLは、XLSX、XLS、CSV、TSVなど、一般的なスプレッドシート形式をすべてサポートしています。 このガイドでは、最新のExcelバージョンのデフォルト形式であるXLSX形式を全体を通して使用しています。 DataGridViewにサンプルデータを入力するにはどうすればよいですか? このチュートリアルでは、フォームには DataGridView という名前の DataGridView1 と、btnExport という名前のボタンが含まれています。 グリッドは、フォームの Load イベントで、DataTable に保存されている従業員レコードを使用して入力されます。 void Form1_Load(object sender, EventArgs e) { var dt = new DataTable(); // Define columns with the appropriate .NET type dt.Columns.Add("EmployeeID", typeof(int)); dt.Columns.Add("Name", typeof(string)); dt.Columns.Add("Department", typeof(string)); dt.Columns.Add("Salary", typeof(decimal)); // Add sample rows dt.Rows.Add(101, "Sarah Johnson", "Engineering", 85000m); dt.Rows.Add(102, "Michael Chen", "Marketing", 72000m); dt.Rows.Add(103, "Emily Davis", "Finance", 91000m); dt.Rows.Add(104, "James Wilson", "Engineering", 78000m); DataGridView1.DataSource = dt; } void Form1_Load(object sender, EventArgs e) { var dt = new DataTable(); // Define columns with the appropriate .NET type dt.Columns.Add("EmployeeID", typeof(int)); dt.Columns.Add("Name", typeof(string)); dt.Columns.Add("Department", typeof(string)); dt.Columns.Add("Salary", typeof(decimal)); // Add sample rows dt.Rows.Add(101, "Sarah Johnson", "Engineering", 85000m); dt.Rows.Add(102, "Michael Chen", "Marketing", 72000m); dt.Rows.Add(103, "Emily Davis", "Finance", 91000m); dt.Rows.Add(104, "James Wilson", "Engineering", 78000m); DataGridView1.DataSource = dt; } Option Strict On Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim dt As New DataTable() ' Define columns with the appropriate .NET type dt.Columns.Add("EmployeeID", GetType(Integer)) dt.Columns.Add("Name", GetType(String)) dt.Columns.Add("Department", GetType(String)) dt.Columns.Add("Salary", GetType(Decimal)) ' Add sample rows dt.Rows.Add(101, "Sarah Johnson", "Engineering", 85000D) dt.Rows.Add(102, "Michael Chen", "Marketing", 72000D) dt.Rows.Add(103, "Emily Davis", "Finance", 91000D) dt.Rows.Add(104, "James Wilson", "Engineering", 78000D) DataGridView1.DataSource = dt End Sub $vbLabelText $csharpLabel 各列は特定 for .NET型で定義されているため、後で数値比較や書式設定が正しく機能します。 DataSource プロパティは、DataTable を DataGridView に直接バインドし、フォームが開くとグリッドはすべての行を自動的にレンダリングします。 本番環境では、このデータは通常、ハードコードされた値ではなく、データベースクエリ、ORMの結果セット、またはREST APIのレスポンスから取得されます。 DataGridViewデータモデルの理解 DataGridView は、2 つのコレクションを通じてそのコンテンツを公開します。Columns (メタデータ、HeaderText や列インデックスなど) と Rows (実際のデータセル)。 各 DataGridViewRow には、列位置でインデックス付けされた Cells コレクションが含まれています。 各セルの Value プロパティは、ボックス化されたオブジェクトを返します。このオブジェクトは、Excel セルに書き込む前にキャストまたは変換する必要があります。 この階層構造を理解することは、信頼性の高いエクスポートループを作成する上で不可欠です。 DataTable は内部で入力された値を保存するため、小数点以下の給与はIronXLワークシートに書き込む前に文字列に変換する必要はありません。 IronXL の SetCellValue メソッドは、bool、および DateTime のオーバーロードを受け入れ、出力ファイルで元のデータ型を保持できます。 DataGridViewのデータを列ヘッダー付きでExcelファイルにエクスポートするにはどうすればよいですか? エクスポート処理は、ボタンのクリックハンドラー内に記述されています。 このコードは新しい WorkBook を作成し、デフォルトのワークシートを取得し、最初の行に列ヘッダーを書き込み、その下に各データ行を書き込みます。 void btnExport_Click(object sender, EventArgs e) { var workbook = WorkBook.Create(); var sheet = workbook.DefaultWorkSheet; // Write column headers to row index 0 for (int col = 0; col < DataGridView1.Columns.Count; col++) { sheet.SetCellValue(0, col, DataGridView1.Columns[col].HeaderText); } // Write data rows starting at row index 1 for (int row = 0; row < DataGridView1.Rows.Count; row++) { for (int col = 0; col < DataGridView1.Columns.Count; col++) { object? cellValue = DataGridView1.Rows[row].Cells[col].Value; if (cellValue is not null) { sheet.SetCellValue(row + 1, col, cellValue.ToString()!); } } } string outputPath = "EmployeeData.xlsx"; workbook.SaveAs(outputPath); MessageBox.Show("Export complete. File saved to: " + outputPath, "Success"); } void btnExport_Click(object sender, EventArgs e) { var workbook = WorkBook.Create(); var sheet = workbook.DefaultWorkSheet; // Write column headers to row index 0 for (int col = 0; col < DataGridView1.Columns.Count; col++) { sheet.SetCellValue(0, col, DataGridView1.Columns[col].HeaderText); } // Write data rows starting at row index 1 for (int row = 0; row < DataGridView1.Rows.Count; row++) { for (int col = 0; col < DataGridView1.Columns.Count; col++) { object? cellValue = DataGridView1.Rows[row].Cells[col].Value; if (cellValue is not null) { sheet.SetCellValue(row + 1, col, cellValue.ToString()!); } } } string outputPath = "EmployeeData.xlsx"; workbook.SaveAs(outputPath); MessageBox.Show("Export complete. File saved to: " + outputPath, "Success"); } Private Sub btnExport_Click(sender As Object, e As EventArgs) Dim workbook = WorkBook.Create() Dim sheet = workbook.DefaultWorkSheet ' Write column headers to row index 0 For col As Integer = 0 To DataGridView1.Columns.Count - 1 sheet.SetCellValue(0, col, DataGridView1.Columns(col).HeaderText) Next ' Write data rows starting at row index 1 For row As Integer = 0 To DataGridView1.Rows.Count - 1 For col As Integer = 0 To DataGridView1.Columns.Count - 1 Dim cellValue As Object = DataGridView1.Rows(row).Cells(col).Value If cellValue IsNot Nothing Then sheet.SetCellValue(row + 1, col, cellValue.ToString()) End If Next Next Dim outputPath As String = "EmployeeData.xlsx" workbook.SaveAs(outputPath) MessageBox.Show("Export complete. File saved to: " & outputPath, "Success") End Sub $vbLabelText $csharpLabel WorkBookオブジェクトは、メモリ内のExcelファイル全体を表します。 DefaultWorkSheet は、明示的にシートを作成する必要なく、最初のシートを返します。 外側のループは、HeaderText のヘッダーテキストを行0に書き込みます。 ネストされたループは、各データ行を繰り返し処理し、セル値を文字列に変換する前にnull値をチェックします。 row + 1 オフセットは、データをヘッダー行の下に移動します。 SaveAs は、完成したワークブックをOpen XML XLSX ファイルとして指定されたパスに書き込みます。 生成されたファイルは、Excel、Googleスプレッドシート、またはXLSX形式を読み込める任意のアプリケーションで開くことができます。 列ヘッダーは最初の行に表示され、すべてのデータ行は DataGridView に表示されたのと同じ順序で続きます。 エクスポートしたExcelファイルにセルの書式設定を適用するにはどうすればよいですか? 単純なデータダンプは機能的には問題ありませんが、プレゼンテーションには適していません。 IronXLのスタイリングAPIを使用すると、保存前に任意のセル範囲に太字フォント、背景色、テキスト色、数値形式を適用できます。 void ExportWithFormatting() { var workbook = WorkBook.Create(); var sheet = workbook.DefaultWorkSheet; // Write column headers for (int col = 0; col < DataGridView1.Columns.Count; col++) { sheet.SetCellValue(0, col, DataGridView1.Columns[col].HeaderText); } // Style the header row: bold white text on blue background var headerRange = sheet.GetRange("A1:D1"); headerRange.Style.Font.Bold = true; headerRange.Style.SetBackgroundColor("#4472C4"); headerRange.Style.Font.SetColor("#FFFFFF"); // Locate the Salary column index int salaryColIndex = -1; for (int i = 0; i < DataGridView1.Columns.Count; i++) { if (string.Equals(DataGridView1.Columns[i].HeaderText, "Salary", StringComparison.OrdinalIgnoreCase)) { salaryColIndex = i; break; } } // Write data rows, preserving numeric types for (int row = 0; row < DataGridView1.Rows.Count; row++) { if (DataGridView1.Rows[row].IsNewRow) continue; for (int col = 0; col < DataGridView1.Columns.Count; col++) { object? cellValue = DataGridView1.Rows[row].Cells[col].Value; if (cellValue is null) continue; int targetRow = row + 1; if (col == salaryColIndex) { // Write salary as a true numeric decimal if (decimal.TryParse(cellValue.ToString(), System.Globalization.NumberStyles.Number, System.Globalization.CultureInfo.InvariantCulture, out decimal decValue)) { sheet.SetCellValue(targetRow, col, decValue); } else { sheet.SetCellValue(targetRow, col, cellValue.ToString()!); } } else { sheet.SetCellValue(targetRow, col, cellValue.ToString()!); } } } // Apply currency format to the salary column data range var salaryRange = sheet.GetRange("D2:D5"); salaryRange.FormatString = "$#,##0"; workbook.SaveAs("FormattedEmployeeData.xlsx"); } void ExportWithFormatting() { var workbook = WorkBook.Create(); var sheet = workbook.DefaultWorkSheet; // Write column headers for (int col = 0; col < DataGridView1.Columns.Count; col++) { sheet.SetCellValue(0, col, DataGridView1.Columns[col].HeaderText); } // Style the header row: bold white text on blue background var headerRange = sheet.GetRange("A1:D1"); headerRange.Style.Font.Bold = true; headerRange.Style.SetBackgroundColor("#4472C4"); headerRange.Style.Font.SetColor("#FFFFFF"); // Locate the Salary column index int salaryColIndex = -1; for (int i = 0; i < DataGridView1.Columns.Count; i++) { if (string.Equals(DataGridView1.Columns[i].HeaderText, "Salary", StringComparison.OrdinalIgnoreCase)) { salaryColIndex = i; break; } } // Write data rows, preserving numeric types for (int row = 0; row < DataGridView1.Rows.Count; row++) { if (DataGridView1.Rows[row].IsNewRow) continue; for (int col = 0; col < DataGridView1.Columns.Count; col++) { object? cellValue = DataGridView1.Rows[row].Cells[col].Value; if (cellValue is null) continue; int targetRow = row + 1; if (col == salaryColIndex) { // Write salary as a true numeric decimal if (decimal.TryParse(cellValue.ToString(), System.Globalization.NumberStyles.Number, System.Globalization.CultureInfo.InvariantCulture, out decimal decValue)) { sheet.SetCellValue(targetRow, col, decValue); } else { sheet.SetCellValue(targetRow, col, cellValue.ToString()!); } } else { sheet.SetCellValue(targetRow, col, cellValue.ToString()!); } } } // Apply currency format to the salary column data range var salaryRange = sheet.GetRange("D2:D5"); salaryRange.FormatString = "$#,##0"; workbook.SaveAs("FormattedEmployeeData.xlsx"); } Option Strict On Sub ExportWithFormatting() Dim workbook = WorkBook.Create() Dim sheet = workbook.DefaultWorkSheet ' Write column headers For col As Integer = 0 To DataGridView1.Columns.Count - 1 sheet.SetCellValue(0, col, DataGridView1.Columns(col).HeaderText) Next ' Style the header row: bold white text on blue background Dim headerRange = sheet.GetRange("A1:D1") headerRange.Style.Font.Bold = True headerRange.Style.SetBackgroundColor("#4472C4") headerRange.Style.Font.SetColor("#FFFFFF") ' Locate the Salary column index Dim salaryColIndex As Integer = -1 For i As Integer = 0 To DataGridView1.Columns.Count - 1 If String.Equals(DataGridView1.Columns(i).HeaderText, "Salary", StringComparison.OrdinalIgnoreCase) Then salaryColIndex = i Exit For End If Next ' Write data rows, preserving numeric types For row As Integer = 0 To DataGridView1.Rows.Count - 1 If DataGridView1.Rows(row).IsNewRow Then Continue For For col As Integer = 0 To DataGridView1.Columns.Count - 1 Dim cellValue As Object = DataGridView1.Rows(row).Cells(col).Value If cellValue Is Nothing Then Continue For Dim targetRow As Integer = row + 1 If col = salaryColIndex Then ' Write salary as a true numeric decimal Dim decValue As Decimal If Decimal.TryParse(cellValue.ToString(), Globalization.NumberStyles.Number, Globalization.CultureInfo.InvariantCulture, decValue) Then sheet.SetCellValue(targetRow, col, decValue) Else sheet.SetCellValue(targetRow, col, cellValue.ToString()) End If Else sheet.SetCellValue(targetRow, col, cellValue.ToString()) End If Next Next ' Apply currency format to the salary column data range Dim salaryRange = sheet.GetRange("D2:D5") salaryRange.FormatString = "$#,##0" workbook.SaveAs("FormattedEmployeeData.xlsx") End Sub $vbLabelText $csharpLabel GetRange メソッドは、連続するセルのブロックを選択するために、標準の Excel 表記 (A1:D1) を受け入れます。 Style.Font.SetColorを設定すると、選択した範囲内のすべてのセルにこれらの書式が適用されます。 数値列の場合、値を文字列ではなく decimal として書き込むことで、データ型がそのまま維持され、Excel は $#,##0 などの数値書式を正しく適用できます。 文字列として保存されたセルは、数値書式コードに対応していません。 IronXLのスタイル設定に関するドキュメントを参照すれば、このパターンを拡張して、行の交互の網掛け、列幅の自動調整、またはウィンドウ枠の固定を適用できます。 DataGridViewのデータをXLSXではなくCSV形式でエクスポートするにはどうすればよいですか? 一部のワークフローでは、レガシーシステムとの互換性や軽量データパイプラインのために、CSV出力が必要となります。 IronXLは、メインコードに追加の設定変更を加えることなく、CSVエクスポートを処理します。 void ExportToCsv() { var workbook = WorkBook.Create(); var sheet = workbook.DefaultWorkSheet; for (int col = 0; col < DataGridView1.Columns.Count; col++) { sheet.SetCellValue(0, col, DataGridView1.Columns[col].HeaderText); } for (int row = 0; row < DataGridView1.Rows.Count; row++) { if (DataGridView1.Rows[row].IsNewRow) continue; for (int col = 0; col < DataGridView1.Columns.Count; col++) { object? cell = DataGridView1.Rows[row].Cells[col].Value; if (cell is not null) sheet.SetCellValue(row + 1, col, cell.ToString()!); } } // Saving with a .csv extension produces a comma-separated file workbook.SaveAs("EmployeeData.csv"); } void ExportToCsv() { var workbook = WorkBook.Create(); var sheet = workbook.DefaultWorkSheet; for (int col = 0; col < DataGridView1.Columns.Count; col++) { sheet.SetCellValue(0, col, DataGridView1.Columns[col].HeaderText); } for (int row = 0; row < DataGridView1.Rows.Count; row++) { if (DataGridView1.Rows[row].IsNewRow) continue; for (int col = 0; col < DataGridView1.Columns.Count; col++) { object? cell = DataGridView1.Rows[row].Cells[col].Value; if (cell is not null) sheet.SetCellValue(row + 1, col, cell.ToString()!); } } // Saving with a .csv extension produces a comma-separated file workbook.SaveAs("EmployeeData.csv"); } Sub ExportToCsv() Dim workbook = WorkBook.Create() Dim sheet = workbook.DefaultWorkSheet For col As Integer = 0 To DataGridView1.Columns.Count - 1 sheet.SetCellValue(0, col, DataGridView1.Columns(col).HeaderText) Next For row As Integer = 0 To DataGridView1.Rows.Count - 1 If DataGridView1.Rows(row).IsNewRow Then Continue For For col As Integer = 0 To DataGridView1.Columns.Count - 1 Dim cell As Object = DataGridView1.Rows(row).Cells(col).Value If cell IsNot Nothing Then sheet.SetCellValue(row + 1, col, cell.ToString()) End If Next Next ' Saving with a .csv extension produces a comma-separated file workbook.SaveAs("EmployeeData.csv") End Sub $vbLabelText $csharpLabel XLSX エクスポートからの唯一の変更点は、SaveAs に渡されるファイル拡張子です。 IronXLは拡張子を検出し、ワークブックを正しい形式に自動的にシリアル化します。 この一貫性により、出力形式に関係なくデータ書き込みロジックは同一のまま維持されます。これは、形式ごとに個別のコードパスを必要とするライブラリに比べて大きな利点です。 CSVエクスポートは、下流の処理対象がPythonのpandasスクリプト、データベースの一括インポートツール、またはバイナリXLSXファイルを読み取ることができない分析プラットフォームである場合に特に役立ちます。 大規模なDataGridViewデータセットを効率的に処理するにはどうすればよいですか? 数万行を含むグリッドの場合、パフォーマンスが考慮事項となる。 以下のパターンは、データセット全体を一度の処理で構築することで、メモリ負荷を軽減します。 大規模データセットにおけるIronXLのエクスポート方法の比較 アプローチ 処理された行数 オフィス勤務必須 タイプの保存 Microsoft.Office.Interop.Excel 最大約65k(低速) はい 部分的 IronXL (ストリングセル) 100万行以上 なし いいえ(全文) IronXL (入力済みセル) 100万行以上 なし はい データテーブルからのIronXL 100万行以上 なし はい(自動) DataGridView が DataTable にバインドされている場合、 WorkSheet.LoadDataTableメソッドを使用してテーブルをIronXLに直接ロードすることができ、セルごとの反復処理を完全にスキップできます。 この方法はより高速で、すべての列の型を自動的に保持します。 DataTable によって裏付けられていないグリッドの場合、先に示したセルごとのパターンが標準的なアプローチとなります。 大規模なエクスポート中に UI の応答性を維持するために非同期でエクスポートする必要がある場合は、エクスポート ロジックを Task.Run 呼び出しでラップし、バックグラウンド スレッドで結果を await します。 結果をUIスレッドにマーシャリングする際のパターンについては、非同期ファイル操作のドキュメントを参照してください。 IronXLがDataGridViewのエクスポートにおいてオフィス相互運用よりも優れている理由は? 従来 for .NETソリューションでは、実行中の Excel プロセスを駆動するために Microsoft.Office.Interop.Excel が使用されていました。 そのアプローチは、導入と信頼性に関していくつかの問題を引き起こす。 アプリケーションを実行するすべてのマシンには、Microsoft Excel のライセンス版がインストールされている必要があります。 通常、サーバー環境やクラウドコンテナではOfficeをインストールできません COM相互運用では、メモリリークやゾンビExcelプロセスを回避するために、すべてのオブジェクトを明示的に解放する必要があります。 COM境界を越えたエラー処理は冗長で脆弱である。 行数が増えるにつれてパフォーマンスが急速に低下する IronXLは、外部プロセスを起動することなく、 OOXMLファイル形式に直接書き込みます。 アプリケーションは自己完結型のユニットとしてデプロイされます。 このライブラリの API は完全に管理された.NETなので、ガベージ コレクションは Marshal.ReleaseComObject 呼び出しなしでメモリを自動的に処理します。 プロセス間通信が発生しないため、処理速度が大幅に向上します。 代替案を検討しているチームにとって、 ClosedXMLは人気の高いオープンソースの選択肢の一つです。 IronXLは、 PDF変換、グラフ作成、商用サポートなど、より幅広い機能を提供しており、これらはEnterpriseの調達決定における重要な要素となる可能性がある。 IronXLのライセンスオプションを確認し、チームの規模と導入シナリオに最適なプランを選択してください。 機能比較: IronXL vs オフィス相互運用 特徴 IronXL オフィス相互運用 オフィスへのインストールが必要です なし はい サーバー/クラウド展開 はい いいえ(サポート対象外) マネージドメモリモデル はい いいえ(COMクリーンアップは不要です) XLSX / CSV / XLS形式 3人全員 インストールされているExcelによって異なります スプレッドシートからのPDFエクスポート はい 追加のライブラリが必要です IronXLのチュートリアルセクションでは、既存のExcelファイルの読み込み、テンプレートの変更、グラフの生成、条件付き書式の適用などについて解説しています。これらはすべて、ここで紹介するDataGridViewのエクスポートパターンから自然に拡張できる機能です。 次のステップは何ですか? これで、 IronXLを使用して DataGridView をフォーマット済みの Excel ファイルにエクスポートする C# コードが動作するようになりました。 ここからは、以下の方向性を検討してください。 -エラー処理を追加:エクスポートコードを try/catch ブロックで囲み、ファイルがロックされている場合やパスが無効な場合は、ユーザーフレンドリーなメッセージを表示します。 -ファイルパス選択のサポート: SaveFileDialog を使用して、実行時にユーザーが出力場所とファイル名を選択できるようにします。 -実際のデータをロードする:サンプル DataTable を、 ADO .NETまたは Entity Framework を使用したデータベースクエリに置き換えます。 -既存ファイルの読み込み: WorkBook.Loadを使用して既存のスプレッドシートを開き、常に新しいスプレッドシートを作成するのではなく、それを更新します。 -複数のシートにエクスポート: 関連するデータセットを整理するために、同じシート内に追加のオブジェクトを作成します。 -条件付き書式を適用する:IronXLの条件付き書式APIを使用して、しきい値を超えるセルを強調表示する -ライセンスオプションを確認してください。無料トライアルが利用可能です。 ライセンス階層は、個人開発者からEnterprise規模での導入までをカバーしています。 -完全なAPIリファレンスを参照: IronXLオブジェクトリファレンスには、利用可能なすべてのクラスとメソッドが記載されています。 よくある質問 C# で DataGridView データを Excel にエクスポートする最も簡単な方法は何ですか? IronXLを使用すると、列ヘッダーとデータ行を WorkBook オブジェクトに書き込み、SaveAs を呼び出して XLSX ファイルを生成する短いループ処理で、C# で DataGridView データを Excel にエクスポートできます。Microsoft Office のインストールは不要です。 IronXLを使用して C# Windows フォーム アプリケーションで Excel ファイルを処理する方法を教えてください。 NuGet経由でIronXLをインストールし、 using IronXLディレクティブを追加し、 WorkBook.Create() を使用して WorkBook を作成し、 SetCellValue を使用してデータを書き込み、 SaveAs を使用して保存します。IronXLはXLSX、XLS、CSV 形式をサポートしています。 IronXLは大きなDataGridViewデータセットのExcelへのエクスポートをサポートしていますか? はい、 IronXLは大規模なデータセットを効率的に処理します。DataTableに基づくDataGridViewの場合、LoadDataTableメソッドを使用してセルごとの反復処理をバイパスし、パフォーマンスをさらに向上させることができます。 IronXLを使用するには Microsoft Excel をインストールする必要がありますか? いいえ。IronXLはExcelやCOMオートメーションを起動することなく、Open XMLファイル形式に直接書き込みます。IronXLで構築されたアプリケーションは、Officeが利用できないサーバーやクラウド環境に展開できます。 Excel エクスポートに Office Interop ではなくIronXLを使用する利点は何ですか? IronXL はOffice のインストールを必要とせず、COM メモリ リークの問題を回避し、サーバーおよびクラウドの展開をサポートし、XLSX、XLS、および CSV ファイルの読み取りと書き込み用のクリーンな管理された.NET API を提供します。 IronXL はDataGridView データを XLSX だけでなく CSV にもエクスポートできますか? はい。WorkBook.SaveAs に .csv ファイルのパスを渡すと、カンマ区切りのファイルが生成されます。データ書き込みコードはどちらの形式でも同じで、ファイル拡張子のみが異なります。 IronXLを使用してエクスポートされた Excel セルに書式設定を適用するにはどうすればよいでしょうか? WorkSheet.GetRange を使用してセル範囲を選択し、Style プロパティにアクセスして、数値書式の Font.Bold、SetBackgroundColor、Font.SetColor、および FormatString を設定します。 C# プロジェクトでIronXLを使い始めるにはどうすればよいでしょうか? プロジェクトでInstall-Package IronXLまたは dotnet add package IronXLを実行し、ファイルの先頭に using IronXLを追加して、ironsoftware.com/csharp/excel/ にあるIronXLドキュメントの例に従います。 カーティス・チャウ 今すぐエンジニアリングチームとチャット テクニカルライター Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。 関連する記事 更新日 2026年3月1日 ASP .NET C# で Excel ファイルをダウンロード: XLSX、CSV などにデータをエクスポート C#とIronXLを使用して、 ASP.NET CoreでExcelファイルをダウンロードします。MVCコントローラーからMemoryStreamとFile()を使用して、XLSX、CSV、XML形式でデータをエクスポートします。コード例も含まれています。 詳しく読む 更新日 2026年3月1日 IronXLを使用してBlazorで Excel ファイルをエクスポートする方法 IronXLを使用してBlazor Server アプリケーションから Excel にデータをエクスポートする方法を学びます。このガイドでは、プロジェクトのセットアップ、サービス設計、条件付き書式、複数シートのレポート、エラー処理について、完全な C# コード例とともに説明します。 詳しく読む 更新日 2026年2月27日 StreamReader の代わりに C# で Excel ファイルを読み取る方法 StreamReader が Excel ファイルを読み取れない理由と、 IronXL を使用して C# .NETのディスクまたはメモリ ストリームから XLSX および XLS ワークブックを読み込む方法について説明します。 詳しく読む IronXLを使用して C# で Excel ファイルを読み取る方法IronXLを使用して C# で CSV ...
更新日 2026年3月1日 ASP .NET C# で Excel ファイルをダウンロード: XLSX、CSV などにデータをエクスポート C#とIronXLを使用して、 ASP.NET CoreでExcelファイルをダウンロードします。MVCコントローラーからMemoryStreamとFile()を使用して、XLSX、CSV、XML形式でデータをエクスポートします。コード例も含まれています。 詳しく読む
更新日 2026年3月1日 IronXLを使用してBlazorで Excel ファイルをエクスポートする方法 IronXLを使用してBlazor Server アプリケーションから Excel にデータをエクスポートする方法を学びます。このガイドでは、プロジェクトのセットアップ、サービス設計、条件付き書式、複数シートのレポート、エラー処理について、完全な C# コード例とともに説明します。 詳しく読む
更新日 2026年2月27日 StreamReader の代わりに C# で Excel ファイルを読み取る方法 StreamReader が Excel ファイルを読み取れない理由と、 IronXL を使用して C# .NETのディスクまたはメモリ ストリームから XLSX および XLS ワークブックを読み込む方法について説明します。 詳しく読む