
C# で GridView を書式付きで Excel にエクスポートする方法
GridViewのデータをExcelにエクスポートする際に、色、フォント、行の背景色、境界線などを保持する必要があることは、ほぼすべてのデータ駆動型ASP.NETまたはWindows Formsアプリケーションで求められる要件です。 従来のアプローチ -- HtmlTextWriter と StringWriter を使用してコントロールをHTMLとしてレンダリング -- は、Excelで形式警告を伴うファイルを生成し、ユーザーに対して静かに失敗します。 IronXLは、Microsoft Officeに依存せず、C#で完全にネイティブなXLSXファイルを生成することでこの問題を解決し、すべてのセルスタイルを正確に制御できるようにします。
.NETプロジェクトにライブラリをインストールするにはどうすればよいですか?
エクスポートコードを記述する前に、 NuGetからIronXLをインストールしてください。 パッケージマネージャーコンソールを開いて次を実行します:
IronXLは、.NET 8、 .NET 9、 .NET 10に加え、 .NET Framework 4.6.2以降をサポートしています。 インストール後、Excel操作を実行する任意のファイルに次の using ディレクティブを追加します。
using IronXL;
using IronXL.Styles;Imports IronXL
Imports IronXL.Styles追加のランタイムやOfficeとの相互運用機能は必要ありません。 このライブラリは、Microsoft Excel、LibreOffice Calc、およびGoogle Sheetsで問題なく開くことができるネイティブのXLSXバイナリファイルを作成します。
WindowsフォームのDataGridViewをセル書式設定付きでExcelにエクスポートするにはどうすればよいですか?
Windows Formsアプリケーションは、ウェブベースのDataGridViewコントロールを使用します。 エクスポートパターンは両方のケースで同じです: 行とセルから値を抽出し、IronXL ワークブックを作成してスタイルを適用し、その後結果を保存またはストリーミングします。
最も信頼性のあるアプローチは、コントロールのDataTableにキャストして、フィルタがかかっていたり、ページ分けされている可能性がある視覚的な行を反復しないようにすることです。
using IronXL;
using IronXL.Styles;
using System;
using System.Data;
using System.IO;
using System.Windows.Forms;
DataTable dt = (DataTable)dataGridView1.DataSource;
WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet sheet = workBook.DefaultWorkSheet;
// Header row -- bold, blue background, white text
for (int col = 0; col < dt.Columns.Count; col++)
{
sheet.SetCellValue(0, col, dt.Columns[col].ColumnName);
var cell = sheet.GetCellAt(0, col);
cell.Style.Font.Bold = true;
cell.Style.SetBackgroundColor("#4472C4");
cell.Style.Font.Color = "#FFFFFF";
cell.Style.BottomBorder.Type = BorderType.Thin;
}
// Data rows -- alternating row color
for (int row = 0; row < dt.Rows.Count; row++)
{
for (int col = 0; col < dt.Columns.Count; col++)
{
string value = dt.Rows[row][col]?.ToString() ?? string.Empty;
sheet.SetCellValue(row + 1, col, value);
var cell = sheet.GetCellAt(row + 1, col);
cell.Style.SetBackgroundColor(row % 2 == 0 ? "#D6DCE5" : "#FFFFFF");
cell.Style.BottomBorder.Type = BorderType.Thin;
}
}
// Save via dialog
using var saveDialog = new SaveFileDialog
{
Filter = "Excel Files|*.xlsx",
FileName = "GridViewExport.xlsx"
};
if (saveDialog.ShowDialog() == DialogResult.OK)
{
workBook.SaveAs(saveDialog.FileName);
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
Dim dt As DataTable = DirectCast(dataGridView1.DataSource, DataTable)
Dim workBook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
Dim sheet As WorkSheet = workBook.DefaultWorkSheet
' Header row -- bold, blue background, white text
For col As Integer = 0 To dt.Columns.Count - 1
sheet.SetCellValue(0, col, dt.Columns(col).ColumnName)
Dim cell = sheet.GetCellAt(0, col)
cell.Style.Font.Bold = True
cell.Style.SetBackgroundColor("#4472C4")
cell.Style.Font.Color = "#FFFFFF"
cell.Style.BottomBorder.Type = BorderType.Thin
Next
' Data rows -- alternating row color
For row As Integer = 0 To dt.Rows.Count - 1
For col As Integer = 0 To dt.Columns.Count - 1
Dim value As String = If(dt.Rows(row)(col)?.ToString(), String.Empty)
sheet.SetCellValue(row + 1, col, value)
Dim cell = sheet.GetCellAt(row + 1, col)
cell.Style.SetBackgroundColor(If(row Mod 2 = 0, "#D6DCE5", "#FFFFFF"))
cell.Style.BottomBorder.Type = BorderType.Thin
Next
Next
' Save via dialog
Using saveDialog As New SaveFileDialog With {
.Filter = "Excel Files|*.xlsx",
.FileName = "GridViewExport.xlsx"
}
If saveDialog.ShowDialog() = DialogResult.OK Then
workBook.SaveAs(saveDialog.FileName)
MessageBox.Show("Export successful.", "Export", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
End UsingWorkBook.Create は、XLSX形式の新しいインメモリワークブックを初期化します。 DefaultWorkSheet は最初のシートを返し、保存前にそのNameプロパティを介して名前を変更できます。 DateTime値を受け付けます—IronXLは適切なセルタイプを自動的に選択します。
交互の行色パターン -- #FFFFFFを選択 -- はExcelに組み込まれているバンド行テーブルスタイルを反映しています。 アプリケーションのデザインシステムに合致する、任意の6文字の16進数カラーコードで置き換えることができます。
出力画像



ASP.NET GridViewをExcelにエクスポートして、そのファイルをブラウザにストリーミングするにはどうすればよいですか?
Webアプリケーションには、異なる配信メカニズムが必要です。 ファイルシステムに書き込む代わりに、ワークブックをMemoryStreamにシリアライズし、適切なヘッダーを付けてHTTPレスポンスに書き込むことで、ブラウザーがファイルダウンロードとして処理します。
ページングされたGridViewの重要な事前準備ステップ: ページングを無効にし(AllowPaging = false)、エクスポート前にデータソースを再バインドして、現在のページだけでなくすべてのレコードをキャプチャします。
using IronXL;
using IronXL.Styles;
using System;
using System.Data;
using System.IO;
using System.Web.UI;
// Disable paging so all rows are captured
GridView1.AllowPaging = false;
GridView1.DataBind();
DataTable dt = (DataTable)GridView1.DataSource;
WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet sheet = workBook.DefaultWorkSheet;
// Header row
for (int col = 0; col < dt.Columns.Count; col++)
{
sheet.SetCellValue(0, col, dt.Columns[col].ColumnName);
var cell = sheet.GetCellAt(0, col);
cell.Style.Font.Bold = true;
cell.Style.SetBackgroundColor("#2E75B6");
cell.Style.Font.Color = "#FFFFFF";
cell.Style.HorizontalAlignment = HorizontalAlignment.Center;
cell.Style.BottomBorder.Type = BorderType.Medium;
}
// Data rows
for (int row = 0; row < dt.Rows.Count; row++)
{
for (int col = 0; col < dt.Columns.Count; col++)
{
sheet.SetCellValue(row + 1, col, dt.Rows[row][col]?.ToString() ?? string.Empty);
var cell = sheet.GetCellAt(row + 1, col);
cell.Style.SetBackgroundColor(row % 2 == 0 ? "#DEEAF1" : "#FFFFFF");
cell.Style.BottomBorder.Type = BorderType.Thin;
cell.Style.LeftBorder.Type = BorderType.Thin;
cell.Style.RightBorder.Type = BorderType.Thin;
}
}
// Stream to browser
byte[] fileBytes = workBook.ToByteArray();
Response.Clear();
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", "attachment; filename=GridViewExport.xlsx");
Response.BinaryWrite(fileBytes);
Response.End();Imports IronXL
Imports IronXL.Styles
Imports System
Imports System.Data
Imports System.IO
Imports System.Web.UI
' Disable paging so all rows are captured
GridView1.AllowPaging = False
GridView1.DataBind()
Dim dt As DataTable = CType(GridView1.DataSource, DataTable)
Dim workBook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
Dim sheet As WorkSheet = workBook.DefaultWorkSheet
' Header row
For col As Integer = 0 To dt.Columns.Count - 1
sheet.SetCellValue(0, col, dt.Columns(col).ColumnName)
Dim cell = sheet.GetCellAt(0, col)
cell.Style.Font.Bold = True
cell.Style.SetBackgroundColor("#2E75B6")
cell.Style.Font.Color = "#FFFFFF"
cell.Style.HorizontalAlignment = HorizontalAlignment.Center
cell.Style.BottomBorder.Type = BorderType.Medium
Next
' Data rows
For row As Integer = 0 To dt.Rows.Count - 1
For col As Integer = 0 To dt.Columns.Count - 1
sheet.SetCellValue(row + 1, col, If(dt.Rows(row)(col)?.ToString(), String.Empty))
Dim cell = sheet.GetCellAt(row + 1, col)
cell.Style.SetBackgroundColor(If(row Mod 2 = 0, "#DEEAF1", "#FFFFFF"))
cell.Style.BottomBorder.Type = BorderType.Thin
cell.Style.LeftBorder.Type = BorderType.Thin
cell.Style.RightBorder.Type = BorderType.Thin
Next
Next
' Stream to browser
Dim fileBytes As Byte() = workBook.ToByteArray()
Response.Clear()
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
Response.AddHeader("content-disposition", "attachment; filename=GridViewExport.xlsx")
Response.BinaryWrite(fileBytes)
Response.End()Response.AddHeader と content-disposition: attachment を使用すると、すべての最新ブラウザでファイルダウンロードのダイアログが強制されます。 MIMEタイプ application/vnd.openxmlformats-officedocument.spreadsheetml.sheet はXLSXファイルの登録タイプで、ブラウザがバイナリコンテンツをインラインで表示しようとするのを防ぎます。
ASP.NET Coreアプリケーションの場合、コントローラーのアクションでFile(fileBytes, contentType, fileName)に置き換えます -- ワークブックの作成ロジックは同じです。
セル値に基づいて条件付き書式を適用するにはどうすればよいですか?
条件付き書式設定は、特定の条件を満たすセルを強調表示します。たとえば、期限を過ぎた日付を赤色で表示したり、しきい値を下回る値をオレンジ色で表示したりできます。 IronXLは、ワークブック作成時にセルレベルで条件付き書式を適用します。
// Assume "DueDate" is column index 3 and "Amount" is column index 4
DateTime today = DateTime.Today;
for (int row = 0; row < dt.Rows.Count; row++)
{
// Highlight past-due dates
if (dt.Columns.Contains("DueDate") && dt.Rows[row]["DueDate"] != DBNull.Value)
{
DateTime dueDate = Convert.ToDateTime(dt.Rows[row]["DueDate"]);
var dueDateCell = sheet.GetCellAt(row + 1, 3);
if (dueDate < today)
{
dueDateCell.Style.SetBackgroundColor("#FF0000");
dueDateCell.Style.Font.Color = "#FFFFFF";
dueDateCell.Style.Font.Bold = true;
}
}
// Highlight amounts below threshold
if (dt.Columns.Contains("Amount") && dt.Rows[row]["Amount"] != DBNull.Value)
{
decimal amount = Convert.ToDecimal(dt.Rows[row]["Amount"]);
var amountCell = sheet.GetCellAt(row + 1, 4);
if (amount < 100m)
{
amountCell.Style.SetBackgroundColor("#FFC000");
}
}
}Imports System
' Assume "DueDate" is column index 3 and "Amount" is column index 4
Dim today As DateTime = DateTime.Today
For row As Integer = 0 To dt.Rows.Count - 1
' Highlight past-due dates
If dt.Columns.Contains("DueDate") AndAlso dt.Rows(row)("DueDate") IsNot DBNull.Value Then
Dim dueDate As DateTime = Convert.ToDateTime(dt.Rows(row)("DueDate"))
Dim dueDateCell = sheet.GetCellAt(row + 1, 3)
If dueDate < today Then
dueDateCell.Style.SetBackgroundColor("#FF0000")
dueDateCell.Style.Font.Color = "#FFFFFF"
dueDateCell.Style.Font.Bold = True
End If
End If
' Highlight amounts below threshold
If dt.Columns.Contains("Amount") AndAlso dt.Rows(row)("Amount") IsNot DBNull.Value Then
Dim amount As Decimal = Convert.ToDecimal(dt.Rows(row)("Amount"))
Dim amountCell = sheet.GetCellAt(row + 1, 4)
If amount < 100D Then
amountCell.Style.SetBackgroundColor("#FFC000")
End If
End If
Next rowこのパターンは組み合わせ可能です。レポート作成要件に応じて、条件チェックをいくつでも追加できます。 IronXLはセル単位で動作するため、基本行スタイルの後に条件付きスタイルを適用することで、条件付き書式と交互行色ロジックを組み合わせることができます。
列幅を設定してヘッダー行を固定するにはどうすればよいですか?
プロフェッショナルな形式でエクスポートされたExcelファイルには、適切な列幅と固定されたヘッダー行が含まれているため、ユーザーが大規模なデータセットをスクロールしても列名が常に表示されます。
IronXLはWorkSheet 列アクセサーを通じて列幅を、FreezeRows メソッドを通じてヘッダーフリーズを公開します。
// Auto-size columns 0 through the last column index
for (int col = 0; col < dt.Columns.Count; col++)
{
// Set column width in character units (1 unit ≈ one default character width)
sheet.SetColumnWidth(col, 20);
}
// Freeze the first row (index 0) so the header stays visible while scrolling
sheet.FreezeRows(1);
// Optionally set row height for the header (in points)
sheet.SetRowHeight(0, 20);' Auto-size columns 0 through the last column index
For col As Integer = 0 To dt.Columns.Count - 1
' Set column width in character units (1 unit ≈ one default character width)
sheet.SetColumnWidth(col, 20)
Next
' Freeze the first row (index 0) so the header stays visible while scrolling
sheet.FreezeRows(1)
' Optionally set row height for the header (in points)
sheet.SetRowHeight(0, 20)実運用においては、固定値を使用するのではなく、各列の最大文字数に基づいて幅を計算することを検討してください。 DataTable列の値を反復し、文字列の長さを測定し、選択したフォントサイズに適した文字幅係数を掛けます。
また、行のバンド分けロジックとは独立して、C# を使用して Excel セルに背景色を適用することで、よりきめ細かなスタイル設定を行うこともできます。
GridViewコントロールを使用せずにデータテーブルをExcelにエクスポートするにはどうすればよいですか?
多く for .NETアプリケーションは、サービスコールやデータベースクエリを通じてデータを取得し、UIコントロールにバインドせずにDataTableに保持します。 GridViewをインスタンス化せずにDataTableを直接Excelにエクスポートできます。
これは、バックグラウンドジョブ、スケジュールされたレポート、およびサーバー上でExcelファイルを生成する必要があるAPIエンドポイントにとって最も効率的な方法です。
using IronXL;
using IronXL.Styles;
using System.Data;
public static byte[] DataTableToExcelBytes(DataTable dt, string sheetName = "Report")
{
WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet sheet = workBook.CreateWorkSheet(sheetName);
// Header
for (int col = 0; col < dt.Columns.Count; col++)
{
sheet.SetCellValue(0, col, dt.Columns[col].ColumnName);
var cell = sheet.GetCellAt(0, col);
cell.Style.Font.Bold = true;
cell.Style.SetBackgroundColor("#4472C4");
cell.Style.Font.Color = "#FFFFFF";
}
// Data
for (int row = 0; row < dt.Rows.Count; row++)
{
for (int col = 0; col < dt.Columns.Count; col++)
{
sheet.SetCellValue(row + 1, col, dt.Rows[row][col]?.ToString() ?? string.Empty);
}
}
return workBook.ToByteArray();
}Imports IronXL
Imports IronXL.Styles
Imports System.Data
Public Shared Function DataTableToExcelBytes(dt As DataTable, Optional sheetName As String = "Report") As Byte()
Dim workBook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
Dim sheet As WorkSheet = workBook.CreateWorkSheet(sheetName)
' Header
For col As Integer = 0 To dt.Columns.Count - 1
sheet.SetCellValue(0, col, dt.Columns(col).ColumnName)
Dim cell = sheet.GetCellAt(0, col)
cell.Style.Font.Bold = True
cell.Style.SetBackgroundColor("#4472C4")
cell.Style.Font.Color = "#FFFFFF"
Next
' Data
For row As Integer = 0 To dt.Rows.Count - 1
For col As Integer = 0 To dt.Columns.Count - 1
sheet.SetCellValue(row + 1, col, If(dt.Rows(row)(col)?.ToString(), String.Empty))
Next
Next
Return workBook.ToByteArray()
End Functionこのメソッドは、ディスクに書き込んだり、APIエンドポイントからストリーミングしたり、メールに添付したり、メモリにキャッシュしたりすることができるbyte[]を返します。 関連するテクニックについては、 DataTableをExcelにエクスポートする方法に関するガイドと、 DataTableをExcelにエクスポートする最速の方法に関するチュートリアルを参照してください。
大規模データセットとパフォーマンスをどのように処理していますか?
数万行ものデータをExcelにエクスポートする場合、メモリ割り当てに注意を払う必要がある。 大きなグリッド内の各セルに対して新しいセル型オブジェクトを作成することが、最も一般的なパフォーマンス上のボトルネックです。 スタイル定義は可能な限り再利用し、個々のセルではなく範囲オブジェクトにスタイルを設定してください。
| データセットのサイズ | 推奨されるアプローチ | 重要な考慮事項 |
|---|---|---|
| 最大5,000行 | 細胞ごとのスタイリングループ | シンプルなコード、オーバーヘッドはごくわずか |
| 5,000~50,000行 | レンジレベルスタイルのアプリケーション | オブジェクト割り当てを大幅に削減します |
| 50,000行以上 | データテーブルの直接エクスポート、最小限のスタイル設定 | セルごとの操作を最小限に抑え、可能であればストリーミングを使用する。 |
ページングされたGridViewの場合、常にAllowPaging = falseを設定し、エクスポート前に再バインドします。 ページングはコントロールに表示される行数を制限するため、ページングされたエクスポートではデータセット全体ではなく現在のページのみが取得されます。これは、エクスポートが不完全になるバグの頻繁な原因となります。
厳密に型指定されたコレクションと協調するパターンを学ぶためにC#でのオブジェクトリストのExcelへのエクスポートに関するガイドを確認することもできます。
ASP.NET CoreまたはBlazorでGridViewをエクスポートするにはどうすればよいですか?
ASP.NET CoreおよびBlazorアプリケーションにはWeb FormsGridViewコントロールがありませんが、基礎となるデータエクスポートの課題は同じです: オブジェクトのコレクションまたはDataTableを取得し、スタイルを施したワークブックを作成し、ファイルを提供します。ワークブック作成コードは同じです; 配送方法だけが変わる。
Blazorアプリケーションで、 JavaScript相互運用機能を使用してファイルダウンロードをトリガーする:
// In a Blazor component or service
using IronXL;
using System.Data;
using Microsoft.JSInterop;
public async Task ExportToExcelAsync(DataTable dt, IJSRuntime js)
{
WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet sheet = workBook.DefaultWorkSheet;
for (int col = 0; col < dt.Columns.Count; col++)
{
sheet.SetCellValue(0, col, dt.Columns[col].ColumnName);
var cell = sheet.GetCellAt(0, col);
cell.Style.Font.Bold = true;
cell.Style.SetBackgroundColor("#4472C4");
cell.Style.Font.Color = "#FFFFFF";
}
for (int row = 0; row < dt.Rows.Count; row++)
{
for (int col = 0; col < dt.Columns.Count; col++)
{
sheet.SetCellValue(row + 1, col, dt.Rows[row][col]?.ToString() ?? string.Empty);
}
}
byte[] fileBytes = workBook.ToByteArray();
string base64 = Convert.ToBase64String(fileBytes);
await js.InvokeVoidAsync("downloadFileFromBase64", base64, "GridViewExport.xlsx",
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
}Imports IronXL
Imports System.Data
Imports Microsoft.JSInterop
Public Async Function ExportToExcelAsync(dt As DataTable, js As IJSRuntime) As Task
Dim workBook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
Dim sheet As WorkSheet = workBook.DefaultWorkSheet
For col As Integer = 0 To dt.Columns.Count - 1
sheet.SetCellValue(0, col, dt.Columns(col).ColumnName)
Dim cell = sheet.GetCellAt(0, col)
cell.Style.Font.Bold = True
cell.Style.SetBackgroundColor("#4472C4")
cell.Style.Font.Color = "#FFFFFF"
Next
For row As Integer = 0 To dt.Rows.Count - 1
For col As Integer = 0 To dt.Columns.Count - 1
sheet.SetCellValue(row + 1, col, If(dt.Rows(row)(col)?.ToString(), String.Empty))
Next
Next
Dim fileBytes As Byte() = workBook.ToByteArray()
Dim base64 As String = Convert.ToBase64String(fileBytes)
Await js.InvokeVoidAsync("downloadFileFromBase64", base64, "GridViewExport.xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
End FunctionBlazorのダウンロードパターンの詳細な手順については、 BlazorからExcelへのエクスポートチュートリアルを参照してください。 ASP.NET Coreコントローラーを使用したアプローチについては、 ASP.NET Core のExcel エクスポートチュートリアルを参照してください。
フォントスタイルと枠線オプション
IronXLは各セルのStyleオブジェクトを通じて微調整フォントとボーダーコントロールを公開します。 C# で利用できる Excel のフォントスタイルには、太字、斜体、下線、サイズ、色など、あらゆる種類が含まれています。 BorderTypeを通じて利用可能なボーダータイプには、細線、中線、太線、破線、点線、ダブル線、さらにはいくつかの細線のバリエーションがあります。
IronXLは、ヘッダー行やサマリーフッターを結合する場合、 C#を使用してExcelのセルを結合することもサポートしています。これは、データテーブルの上に複数の列にまたがる単一のタイトルセルを作成したい場合に便利です。
データ入力後に列幅を自動調整するには、推奨される方法について、 Excel で C# を使用してセルを自動調整する方法に関するガイドを参照してください。
なぜネイティブのExcelライブラリはHtmlTextWriterよりもきれいなエクスポートファイルを作成するのか?
従来のASP.NETエクスポート技術 -- HtmlTextWriterを作成し、レンダリングされたコントロールをレスポンスに書き込む -- は、.xls拡張子のHTMLドキュメントを生成します。 Microsoft Excel は、このようなファイルを開く際に互換性に関する警告を表示します。これは、ファイルが実際には Excel バイナリ形式または OOXML 形式ではないためです。 スタイルは、Excelが部分的に解釈するインラインCSSに限定されます。 条件付き書式設定は不可能です。 Windows以外のプラットフォームを使用しているユーザー、またはLibreOfficeを使用しているユーザーは、出力品質が低下します。
IronXLはOpen XMLスプレッドシート形式(OOXML)を直接出力します。 結果は正しい.xlsxファイルです -- Excel自体が作成するものと同一であり、Excel、LibreOffice、Google Sheets、およびmacOSのNumbersで警告なしで開きます。 書式設定はHTML属性ではなくスプレッドシートのスタイルとしてエンコードされるため、データの送受信や異なるプラットフォームでの表示でも維持されます。
| 方法 | ファイル形式 | 書式に関する警告 | フルスタイルサポート | オフィス必須 |
|---|---|---|---|---|
| HtmlTextWriter + StringWriter | XLSを装ったHTML | はい | なし | なし |
| Office Interop (COM) | ネイティブXLS/XLSX | なし | はい | はい |
| IronXL | ネイティブXLSX/XLS | なし | はい | なし |
Microsoftの公式ドキュメントであるOpen XML SDKには、 IronXLが生成する基本フォーマットについて説明されています。 ECMA Internationalが管理するOOXML仕様は、アプリケーション間の互換性を保証する標準を定義している。 Microsoft Docs のASP.NET GridView コントロールのドキュメントには、上記のエクスポート パターンが読み取るコントロール モデルについて説明されています。
次のステップは何ですか?
これで、 IronXLを使用してGridViewおよびDataGridViewのデータを適切な形式のXLSXファイルにエクスポートするために必要なパターンが揃いました。Windows Forms、 ASP.NET Web Forms、 ASP.NET Core、およびBlazorの配信モデルに対応しています。
さらに詳しく知りたい場合は:
IronXLの無料トライアルを開始して、ご自身のデータを使ってフォーマット機能とエクスポート機能をすべてテストしてみてください。
- ピボットテーブル、グラフ、データ検証など、完全なAPIリファレンスについては、 IronXLのドキュメントを参照してください。
- 上記のエクスポートパターンと計算された集計やグラフを組み合わせるために、 C# で Excel レポートを作成する方法を検討してください。 アプリケーションでアップロードされたスプレッドシートも処理する必要がある場合は、補足的なインポートワークフローについて"C# で Excel ファイルを読み込む"を参照してください。
- XLSX形式と並行してCSV形式でエクスポートするには、 C#によるCSVへのエクスポートチュートリアルを参照してください。
- 列ヘッダーが最初の行として含まれている DataGridView からデータをエクスポートする場合は、専用の"列ヘッダー付き DataGridView から Excel へのエクスポート"ガイドを参照してください。

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。
関連する記事



