IRONXLの使用 IronXLを使用してC#でデータセットをExcelにエクスポート | Officeは不要 カーティス・チャウ 更新日:2026年3月1日 IronXL をダウンロード NuGet ダウンロード DLL ダウンロード 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる Grokで開く このページについてGrokに質問する 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る C#でDataSetまたはDataTableをExcelにエクスポートすると、対象マシンにMicrosoft Officeがインストールされている必要もなく、構造化されたメモリ内データをプロフェッショナルなスプレッドシートファイルに変換できます。SQLデータベースからレコードを取得する場合でも、プログラムでDataSetを構築する場合でも、既存のDataGridを操作する場合でも、 IronXLはクリーンでコードファーストなAPIを通じてパイプライン全体を処理します。 このガイドでは、トップレベルの C# ステートメントと.NET 10 を使用して、単一テーブルのエクスポートから複数シートのワークブック、ライブ データベース クエリ結果まで、あらゆる主要なシナリオについて説明します。 IronXL を一度インストールし、数行のコードを記述するだけで、Office に一切依存せずにデータが XLSX ファイルに保存されます。 以下のセクションでは、インストール、コア パターン、高度なフォーマット、およびデータベース統合について説明しており、独自のプロジェクトに直接コピーして貼り付けることができます。 Excel エクスポート用にIronXLをインストールするにはどうすればいいですか? エクスポート コードを記述する前に、 NuGetパッケージ マネージャーを使用してIronXL をプロジェクトに追加します。 プロジェクト ルートでターミナルを開き、 .NET CLI コマンドを実行するか、Visual Studio のパッケージ マネージャー コンソールで Install-Package コマンドを使用します。 dotnet add package IronXl.Excel # Or in Visual Studio Package Manager Console: # Install-Package IronXl.Excel dotnet add package IronXl.Excel # Or in Visual Studio Package Manager Console: # Install-Package IronXl.Excel SHELL インストール後、トップレベルの using ステートメントを追加してIronXL名前空間をインポートします。 using IronXL; using System.Data; using IronXL; using System.Data; $vbLabelText $csharpLabel IronXL は、.NET 8、 .NET 9、 .NET 10 に加え、古い.NET Frameworkバージョン (4.6.2+) もターゲットとしています。 サーバー、デスクトップ、クラウドなど、どのマシンにも Office をインストールする必要はありません。 パッケージをインストールすると、XLSX、XLS、CSV ファイルを完全にマネージ コードで作成、読み取り、書き込みできるようになります。 詳細なインストール オプションについては、 IronXLインストール ガイドとバージョン履歴のNuGetパッケージ ページを参照してください。 単一の DataTable を Excel ファイルにエクスポートするにはどうすればよいですか? 最も一般的なシナリオは、1 つの DataTable を 1 つのワークシートにエクスポートすることです。 IronXL の WorkBook および WorkSheet クラスは、Excel オブジェクト モデルに自然にマップされます。 ワークブックを作成し、ワークシートを追加して、DataTable の列と行を反復処理します。 次の例では、メモリ内に Employees DataTable を作成し、それを EmployeeData.xlsx に書き込みます。 using IronXL; using System.Data; // Build an in-memory DataTable DataTable dt = new DataTable("Employees"); dt.Columns.Add("ID", typeof(int)); dt.Columns.Add("Name", typeof(string)); dt.Columns.Add("Department", typeof(string)); dt.Rows.Add(1, "John Smith", "Engineering"); dt.Rows.Add(2, "Sarah Jones", "Marketing"); dt.Rows.Add(3, "Mike Wilson", "Sales"); // Create a workbook and a named worksheet WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet worksheet = workbook.CreateWorkSheet("Employees"); // Write column headers in row 0 for (int col = 0; col < dt.Columns.Count; col++) { worksheet.SetCellValue(0, col, dt.Columns[col].ColumnName); } // Write data rows starting at row 1 for (int row = 0; row < dt.Rows.Count; row++) { for (int col = 0; col < dt.Columns.Count; col++) { worksheet.SetCellValue(row + 1, col, dt.Rows[row][col].ToString()); } } workbook.SaveAs("EmployeeData.xlsx"); using IronXL; using System.Data; // Build an in-memory DataTable DataTable dt = new DataTable("Employees"); dt.Columns.Add("ID", typeof(int)); dt.Columns.Add("Name", typeof(string)); dt.Columns.Add("Department", typeof(string)); dt.Rows.Add(1, "John Smith", "Engineering"); dt.Rows.Add(2, "Sarah Jones", "Marketing"); dt.Rows.Add(3, "Mike Wilson", "Sales"); // Create a workbook and a named worksheet WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet worksheet = workbook.CreateWorkSheet("Employees"); // Write column headers in row 0 for (int col = 0; col < dt.Columns.Count; col++) { worksheet.SetCellValue(0, col, dt.Columns[col].ColumnName); } // Write data rows starting at row 1 for (int row = 0; row < dt.Rows.Count; row++) { for (int col = 0; col < dt.Columns.Count; col++) { worksheet.SetCellValue(row + 1, col, dt.Rows[row][col].ToString()); } } workbook.SaveAs("EmployeeData.xlsx"); $vbLabelText $csharpLabel 出力 SetCellValue は int、double、string、bool を受け入れるため、追加のキャストなしでネイティブの Excel セル タイプを取得できます。 ループ パターンはあらゆるサイズのテーブルで機能します。これは、 IronXL がメモリに直接書き込み、SaveAs が呼び出されたときにのみディスクにフラッシュするため、数千の行があってもプロセスの効率が維持されるためです。 読み取りと書き込みのテクニックをより幅広く理解するには、 IronXL C# チュートリアルで、このエクスポート パターンに加えて、ファイル操作の全範囲をカバーしています。 DataSet を複数の Excel ワークシートにエクスポートするにはどうすればよいですか? DataSet に複数の関連テーブル (製品や注文など) が含まれている場合は、各 DataTable を 1 つのブック内の独自のワークシートにマップできます。 これにより、受信者は複数のドキュメントを開かなくても、関連するすべてのデータを 1 つのファイルで確認できます。 以下のループは ds.Tables を反復し、テーブルごとに 1 つのシートを作成します。 using IronXL; using System.Data; // Build a DataSet with two related tables DataSet ds = new DataSet("CompanyData"); DataTable dtProducts = new DataTable("Products"); dtProducts.Columns.Add("ProductID", typeof(int)); dtProducts.Columns.Add("ProductName", typeof(string)); dtProducts.Columns.Add("Price", typeof(decimal)); dtProducts.Rows.Add(101, "Widget A", 29.99m); dtProducts.Rows.Add(102, "Widget B", 49.99m); ds.Tables.Add(dtProducts); DataTable dtOrders = new DataTable("Orders"); dtOrders.Columns.Add("OrderID", typeof(int)); dtOrders.Columns.Add("Customer", typeof(string)); dtOrders.Columns.Add("Total", typeof(decimal)); dtOrders.Rows.Add(1001, "Acme Corp", 599.90m); dtOrders.Rows.Add(1002, "Tech Inc", 299.95m); ds.Tables.Add(dtOrders); // Create one workbook and iterate each DataTable WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); foreach (DataTable table in ds.Tables) { WorkSheet sheet = workbook.CreateWorkSheet(table.TableName); // Write headers for (int col = 0; col < table.Columns.Count; col++) { sheet.SetCellValue(0, col, table.Columns[col].ColumnName); } // Write rows for (int row = 0; row < table.Rows.Count; row++) { for (int col = 0; col < table.Columns.Count; col++) { sheet.SetCellValue(row + 1, col, table.Rows[row][col].ToString()); } } } workbook.SaveAs("CompanyReport.xlsx"); using IronXL; using System.Data; // Build a DataSet with two related tables DataSet ds = new DataSet("CompanyData"); DataTable dtProducts = new DataTable("Products"); dtProducts.Columns.Add("ProductID", typeof(int)); dtProducts.Columns.Add("ProductName", typeof(string)); dtProducts.Columns.Add("Price", typeof(decimal)); dtProducts.Rows.Add(101, "Widget A", 29.99m); dtProducts.Rows.Add(102, "Widget B", 49.99m); ds.Tables.Add(dtProducts); DataTable dtOrders = new DataTable("Orders"); dtOrders.Columns.Add("OrderID", typeof(int)); dtOrders.Columns.Add("Customer", typeof(string)); dtOrders.Columns.Add("Total", typeof(decimal)); dtOrders.Rows.Add(1001, "Acme Corp", 599.90m); dtOrders.Rows.Add(1002, "Tech Inc", 299.95m); ds.Tables.Add(dtOrders); // Create one workbook and iterate each DataTable WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); foreach (DataTable table in ds.Tables) { WorkSheet sheet = workbook.CreateWorkSheet(table.TableName); // Write headers for (int col = 0; col < table.Columns.Count; col++) { sheet.SetCellValue(0, col, table.Columns[col].ColumnName); } // Write rows for (int row = 0; row < table.Rows.Count; row++) { for (int col = 0; col < table.Columns.Count; col++) { sheet.SetCellValue(row + 1, col, table.Rows[row][col].ToString()); } } } workbook.SaveAs("CompanyReport.xlsx"); $vbLabelText $csharpLabel 出力 各ワークシートはソース DataTable に基づいて名前が付けられるため、Excel 内でのナビゲーションが簡単になります。 WorkBook.Create はワークブックをメモリ内に割り当てるため、ファイルを再度開かずにループ内でワークシートを追加し続けることができます。IronXLはディスクに書き込む前に XLSX 構造全体を構築します。 IronXL WorkBook ドキュメントには、シートの並べ替え、パスワード保護、XLSX 以外の形式での保存など、WorkBook オブジェクトで使用できるすべてのメソッドがリストされています。 Excel エクスポートにヘッダー書式を追加するにはどうすればよいですか? プレーンなデータのエクスポートは機能しますが、太字のヘッダーと列幅を追加すると、出力をビジネス コンテキストですぐに使用できるようになります。 IronXL は、任意の WorkSheet 範囲に添付された Style オブジェクトを通じて、セルと範囲のスタイルを公開します。 以下のスニペットは、ヘッダー行に太字のフォント書式を適用し、データの書き込み後に列のサイズを自動変更します。 using IronXL; using System.Data; DataTable dt = new DataTable("Sales"); dt.Columns.Add("Region", typeof(string)); dt.Columns.Add("Q1", typeof(decimal)); dt.Columns.Add("Q2", typeof(decimal)); dt.Columns.Add("Q3", typeof(decimal)); dt.Columns.Add("Q4", typeof(decimal)); dt.Rows.Add("なしrth", 120000m, 135000m, 142000m, 158000m); dt.Rows.Add("South", 98000m, 104000m, 112000m, 121000m); dt.Rows.Add("East", 87000m, 93000m, 99000m, 108000m); dt.Rows.Add("West", 145000m, 152000m, 161000m, 174000m); WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet sheet = workbook.CreateWorkSheet("Sales"); // Write and style headers for (int col = 0; col < dt.Columns.Count; col++) { sheet.SetCellValue(0, col, dt.Columns[col].ColumnName); sheet["A1:E1"].Style.Font.Bold = true; sheet["A1:E1"].Style.Font.Height = 12; } // Write 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]); } } workbook.SaveAs("SalesReport.xlsx"); using IronXL; using System.Data; DataTable dt = new DataTable("Sales"); dt.Columns.Add("Region", typeof(string)); dt.Columns.Add("Q1", typeof(decimal)); dt.Columns.Add("Q2", typeof(decimal)); dt.Columns.Add("Q3", typeof(decimal)); dt.Columns.Add("Q4", typeof(decimal)); dt.Rows.Add("なしrth", 120000m, 135000m, 142000m, 158000m); dt.Rows.Add("South", 98000m, 104000m, 112000m, 121000m); dt.Rows.Add("East", 87000m, 93000m, 99000m, 108000m); dt.Rows.Add("West", 145000m, 152000m, 161000m, 174000m); WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet sheet = workbook.CreateWorkSheet("Sales"); // Write and style headers for (int col = 0; col < dt.Columns.Count; col++) { sheet.SetCellValue(0, col, dt.Columns[col].ColumnName); sheet["A1:E1"].Style.Font.Bold = true; sheet["A1:E1"].Style.Font.Height = 12; } // Write 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]); } } workbook.SaveAs("SalesReport.xlsx"); $vbLabelText $csharpLabel Style.Font.Bold プロパティは、単一のステートメント内のヘッダー範囲全体に適用されます。 IronXL は、背景色 (Style.BackgroundColor)、境界線のスタイル (Style.Border)、数値形式 (Style.NumberFormat.FormatCode)、水平方向の配置 (Style.HorizontalAlignment) もサポートしています。 完全なスタイル設定のリファレンスについては、 IronXLセル書式設定ガイドを参照してください。 データベースクエリの結果を Excel にエクスポートするにはどうすればよいですか? SQL データベースに接続し、結果を直接 Excel にエクスポートすると、スケジュールされたレポート、データ スナップショット、管理エクスポートなど、実際の主要な使用例がカバーされます。 このアプローチでは、SqlDataAdapter を使用して DataSet を入力し、結果の DataTable をIronXLワークシートにマップします。 using IronXL; using System.Data; using System.Data.SqlClient; string connectionString = "Server=localhost;Database=SalesDB;Integrated Security=True;"; string query = "SELECT CustomerID, CompanyName, ContactName, Country FROM Customers"; // Fill DataSet from SQL query DataSet ds = new DataSet(); using (SqlConnection connection = new SqlConnection(connectionString)) { SqlDataAdapter adapter = new SqlDataAdapter(query, connection); adapter.Fill(ds, "Customers"); } DataTable dt = ds.Tables["Customers"]!; // Create workbook and export WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet worksheet = workbook.CreateWorkSheet("CustomerData"); // Bold header row for (int col = 0; col < dt.Columns.Count; col++) { worksheet.SetCellValue(0, col, dt.Columns[col].ColumnName); } worksheet["A1:D1"].Style.Font.Bold = true; // Write rows, handling DBNull values safely for (int row = 0; row < dt.Rows.Count; row++) { for (int col = 0; col < dt.Columns.Count; col++) { object cellValue = dt.Rows[row][col]; worksheet.SetCellValue(row + 1, col, cellValue == DBNull.Value ? "" : cellValue.ToString()!); } } workbook.SaveAs("CustomerExport.xlsx"); Console.WriteLine("Export complete."); using IronXL; using System.Data; using System.Data.SqlClient; string connectionString = "Server=localhost;Database=SalesDB;Integrated Security=True;"; string query = "SELECT CustomerID, CompanyName, ContactName, Country FROM Customers"; // Fill DataSet from SQL query DataSet ds = new DataSet(); using (SqlConnection connection = new SqlConnection(connectionString)) { SqlDataAdapter adapter = new SqlDataAdapter(query, connection); adapter.Fill(ds, "Customers"); } DataTable dt = ds.Tables["Customers"]!; // Create workbook and export WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet worksheet = workbook.CreateWorkSheet("CustomerData"); // Bold header row for (int col = 0; col < dt.Columns.Count; col++) { worksheet.SetCellValue(0, col, dt.Columns[col].ColumnName); } worksheet["A1:D1"].Style.Font.Bold = true; // Write rows, handling DBNull values safely for (int row = 0; row < dt.Rows.Count; row++) { for (int col = 0; col < dt.Columns.Count; col++) { object cellValue = dt.Rows[row][col]; worksheet.SetCellValue(row + 1, col, cellValue == DBNull.Value ? "" : cellValue.ToString()!); } } workbook.SaveAs("CustomerExport.xlsx"); Console.WriteLine("Export complete."); $vbLabelText $csharpLabel データベースエクスポートのポイント null ガード (cellValue == DBNull.Value ? "" : cellValue.ToString()) prevents exceptions when the database returns NULL 値 -- オプションの列でよく発生します。 ヘッダー行を太字にすると、レポートの受信者はヘッダーとデータをすぐに区別できます。 Excel から C# オブジェクトにデータを読み込むパターンの詳細については、 IronXL DataTable エクスポート チュートリアルでこのワークフローを逆にする方法が示されています。 IronXL を他の Excel エクスポート方法と比較するとどうなりますか? ライブラリを選択する前に、DataSet エクスポート シナリオにとって最も重要な領域で、主要なオプションが互いにどのように比較されるかを理解しておくと役立ちます。 .NET DataSet シナリオにおける Excel エクスポート ライブラリの比較 アプローチ オフィス必須 XLSXサポート スタイリングAPI マルチシート パフォーマンス(大規模データ) IronXL なし はい 満杯 はい 高い Microsoft Office Interop はい はい 満杯 はい 低い EPPlus なし はい 部分的 はい 高い ClosedXML なし はい 部分的 はい 中くらい CSV(手動) なし なし 該当なし なし 非常に高い Microsoft Office Interop は、Office がインストールされている Windows マシンでのみ動作するため、サーバー展開やクラウド機能には使用できません。 IronXL、EPPlus、ClosedXML はすべてサーバー側での生成をサポートしています。主な差別化要因は、スタイル API とライセンス モデルの幅広さです。 IronXL のライセンスには商用利用が含まれており、単一のパッケージですべて for .NETターゲット フレームワークがカバーされます。 サードパーティのベンチマークと比較については、 Excel ファイル形式に関する Microsoft のドキュメントとEPPlus プロジェクト ページに、プロジェクトに適切な選択を行うための追加のコンテキストが提供されています。 メモリの問題を起こさずに大規模なデータセットを処理するにはどうすればよいでしょうか? 数万行の DataTables をエクスポートする場合、メモリ使用量を予測可能に保つことが重要です。 以下のパターンでは、結果セット全体を最初にDataTableにロードするのではなく、IDataReaderからデータをストリーミングします。これにより、リーダーバッファとDataTableの両方を同時に保持することによるメモリコストの二重化を回避できます。 using IronXL; using System.Data; using System.Data.SqlClient; string connectionString = "Server=localhost;Database=InventoryDB;Integrated Security=True;"; string query = "SELECT ProductID, SKU, Description, StockLevel, UnitCost FROM Products"; WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet sheet = workbook.CreateWorkSheet("Inventory"); using SqlConnection conn = new SqlConnection(connectionString); conn.Open(); using SqlCommand cmd = new SqlCommand(query, conn); using SqlDataReader reader = cmd.ExecuteReader(); // Write schema-derived headers for (int col = 0; col < reader.FieldCount; col++) { sheet.SetCellValue(0, col, reader.GetName(col)); } // Stream rows directly into IronXL without buffering a DataTable int excelRow = 1; while (reader.Read()) { for (int col = 0; col < reader.FieldCount; col++) { sheet.SetCellValue(excelRow, col, reader.IsDBNull(col) ? "" : reader.GetValue(col).ToString()!); } excelRow++; } workbook.SaveAs("InventoryExport.xlsx"); Console.WriteLine($"Exported {excelRow - 1} rows."); using IronXL; using System.Data; using System.Data.SqlClient; string connectionString = "Server=localhost;Database=InventoryDB;Integrated Security=True;"; string query = "SELECT ProductID, SKU, Description, StockLevel, UnitCost FROM Products"; WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet sheet = workbook.CreateWorkSheet("Inventory"); using SqlConnection conn = new SqlConnection(connectionString); conn.Open(); using SqlCommand cmd = new SqlCommand(query, conn); using SqlDataReader reader = cmd.ExecuteReader(); // Write schema-derived headers for (int col = 0; col < reader.FieldCount; col++) { sheet.SetCellValue(0, col, reader.GetName(col)); } // Stream rows directly into IronXL without buffering a DataTable int excelRow = 1; while (reader.Read()) { for (int col = 0; col < reader.FieldCount; col++) { sheet.SetCellValue(excelRow, col, reader.IsDBNull(col) ? "" : reader.GetValue(col).ToString()!); } excelRow++; } workbook.SaveAs("InventoryExport.xlsx"); Console.WriteLine($"Exported {excelRow - 1} rows."); $vbLabelText $csharpLabel このパターンは、結果セットが50,000行を超える可能性がある場合、またはメモリ制約のあるサービス内で実行する場合に適しています。IronXL のパフォーマンスに関するドキュメントでは、大量エクスポートにおけるメモリとスループットのチューニングに関する追加オプションについて説明しています。 非常に大きなエクスポートのための CSV への一括保存 メモリが非常に不足している 500,000 行を超えるエクスポートの場合は、出力を複数のワークブックに分割するか、代わりに CSV 形式でエクスポートすることを検討してください。 using IronXL; // IronXL can save any workbook as CSV workbook.SaveAs("LargeExport.csv"); using IronXL; // IronXL can save any workbook as CSV workbook.SaveAs("LargeExport.csv"); $vbLabelText $csharpLabel CSV は書式設定と複数シートのサポートを失いますが、生の区切りデータを使用する下流の ETL プロセスでは有効なままです。 Excel ファイルをさまざまな形式や場所に保存するにはどうすればよいですか? IronXL は、ファイル パスへの保存、MemoryStream、および byte[] をサポートしています。これらは、ダウンロード応答として Excel を返すASP.NETアプリケーションにとって重要です。 using IronXL; using System.IO; WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet sheet = workbook.CreateWorkSheet("Report"); sheet.SetCellValue(0, 0, "Generated Report"); // Save to file path workbook.SaveAs("Report.xlsx"); // Save as XLS (legacy format) workbook.SaveAs("Report.xls"); // Save to MemoryStream for HTTP response using MemoryStream ms = new MemoryStream(); workbook.SaveAs(ms); byte[] fileBytes = ms.ToArray(); // fileBytes can be returned from an ASP.NET controller action using IronXL; using System.IO; WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet sheet = workbook.CreateWorkSheet("Report"); sheet.SetCellValue(0, 0, "Generated Report"); // Save to file path workbook.SaveAs("Report.xlsx"); // Save as XLS (legacy format) workbook.SaveAs("Report.xls"); // Save to MemoryStream for HTTP response using MemoryStream ms = new MemoryStream(); workbook.SaveAs(ms); byte[] fileBytes = ms.ToArray(); // fileBytes can be returned from an ASP.NET controller action $vbLabelText $csharpLabel ASP.NET Coreの場合、コントローラー アクションから File(fileBytes, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Report.xlsx") を返して、ブラウザーのダウンロードをトリガーします。 IronXL ASP.NET Excel ガイドでは、完全なコントローラー統合パターンが示されています。 代替 for .NET Excel ライブラリとしては、 Open XML SDK が多くのライブラリの基盤となるオープン ソースの基盤です。 サポートされている出力形式 IronXL は追加の依存関係なしで次の形式で保存します。 XLSX - OpenXML 形式、Excel 2007 以降と互換性あり XLS -- Excel 97-2003 と互換性のあるレガシーバイナリ形式 CSV -- カンマ区切り値、広くサポートされています TSV -- タブ区切りの値 JSON -- 構造化データのエクスポート 形式を切り替えるには、SaveAs パス内のファイル拡張子を変更するか、ExcelFileFormat 列挙値を受け入れるオーバーロード メソッドを使用します。 エクスポートされた Excel ファイルが正しいことをどのように確認しますか? エクスポート後、 IronXLを使用してファイルを再度読み込んで、行数を確認したり、値をスポットチェックしたり、テスト プロジェクトで自動アサーションを実行したりできます。 using IronXL; WorkBook loaded = WorkBook.Load("EmployeeData.xlsx"); WorkSheet sheet = loaded.WorkSheets[0]; // Verify row count (header row + data rows) int totalRows = sheet.Rows.Count(); Console.WriteLine($"Rows in file: {totalRows}"); // Spot-check specific cell values string header = sheet["A1"].StringValue; string firstEmployee = sheet["A2"].StringValue; Console.WriteLine($"Header: {header}, First row: {firstEmployee}"); using IronXL; WorkBook loaded = WorkBook.Load("EmployeeData.xlsx"); WorkSheet sheet = loaded.WorkSheets[0]; // Verify row count (header row + data rows) int totalRows = sheet.Rows.Count(); Console.WriteLine($"Rows in file: {totalRows}"); // Spot-check specific cell values string header = sheet["A1"].StringValue; string firstEmployee = sheet["A2"].StringValue; Console.WriteLine($"Header: {header}, First row: {firstEmployee}"); $vbLabelText $csharpLabel この検証パターンは、ファイルを外部システムに送信する前にエクスポートの正確性を確認する必要がある統合テスト スイートで特に役立ちます。 IronXL読み取りチュートリアルでは、ファイルの読み込み後に使用できる読み取り操作の全範囲を示します。 .NETの DataSet および DataTable パターンの詳細については、 Microsoft DataSet ドキュメントで ADO .NETオブジェクト モデルが詳細に説明されています。 次のステップは何ですか? これで、単一の DataTable から複数シートのブック、データベース駆動型のエクスポート、フォーマットされたヘッダー、大規模データ ストリーミングまで、C# での主要な DataSet から Excel へのエクスポート シナリオすべてに対応する実用的なパターンが利用できるようになりました。 目標に応じて次のステップを実行する方法は次のとおりです。 IronXL を無料でお試しください-無料の試用ライセンスから始めて、本番環境に移行する前に、上記の例を自分のデータに対して実行してください。 -完全な API リファレンスを読む- IronXLオブジェクト リファレンスには、WorkBook、WorkSheet、およびセル範囲のすべてのメソッドが含まれています。 -関連するエクスポート チュートリアルを調べる- C# DataTable から Excel へのガイドでは、逆のワークフロー (Excel を DataTable オブジェクトに読み込む) について説明します。 -書式設定オプションを確認する- IronXLセル書式設定ドキュメントには、数値の書式、境界線、背景色、配置オプションが表示されます。 -ライセンスを確認する- 実稼働環境での展開の場合は、 IronXLライセンス ページを参照して、開発者、組織、ロイヤリティフリーのオプションから選択してください。 -他のIron Softwareツールと比較- プロジェクトで PDF 生成や OCR も必要な場合は、 Iron Software製品スイートを使用すると、複数のライブラリを割引価格でバンドルできます。 ここで説明したパターンを基にして、スケジュールされたタスクの自動化、 ASP.NET Coreダウンロード エンドポイント、およびマルチフォーマット出力パイプラインをマネージ C# で完全にレイヤー化できます。Office や COM は不要で、 NuGetパッケージ以外のランタイム依存関係もありません。 よくある質問 C# で DataSet を Excel にエクスポートするにはどうすればよいですか? IronXLライブラリを使用すると、C# で DataSet を Excel にエクスポートできます。このライブラリは、Microsoft Office を必要とせずに Excel ファイルを作成、編集、操作するためのコード ファースト API を提供します。 IronXLを使用するためにMicrosoft Officeをインストールする必要がありますか? いいえ、 IronXL、Excel ファイルをエクスポートまたは操作するために、マシンに Microsoft Office がインストールされている必要はありません。 IronXLを使用してエクスポートできるデータの種類は何ですか? IronXL を使用すると、DataTables や DataSet などの構造化データのほか、SqlDataReader やその他の ADO .NETソースからのデータを Excel ファイルにエクスポートできます。 IronXL はExcel ファイルの作成と編集を処理できますか? はい、 IronXL はC# でプログラム的に Excel ファイルを作成、編集、操作する機能を提供します。 IronXL はサーバー側およびクラウド アプリケーションに適していますか? はい、 IronXL は、Office をインストールせずに Excel ファイルを生成する必要があるサーバー側アプリケーションやクラウド機能に最適です。 DataSet をエクスポートするためにIronXLを使用する利点は何ですか? IronXL は、Microsoft Office などの外部依存なしに Excel ファイルの作成と操作を処理し、XLSX、XLS、CSV 形式をサポートし、すべて for .NETターゲット フレームワークで動作します。 IronXL をASP.NET Coreで使用して Excel のダウンロードを返すことはできますか? はい、 IronXL はワークブックを MemoryStream に保存でき、結果のバイト配列はASP.NET Coreコントローラー アクションからファイルのダウンロードとして返すことができます。 IronXL は大規模な DataSet をサポートしていますか? はい、 IronXL は完全な DataTable をバッファリングせずに SqlDataReader から直接データをストリーミングできるため、大規模な結果セットのメモリ使用量を予測可能に保つことができます。 IronXL はどのような Excel 形式での保存をサポートしていますか? IronXL は、追加の依存関係なしで、XLSX、XLS、CSV、TSV、JSON 形式への保存をサポートします。 Excel にエクスポートするときに太字のヘッダーなどの書式を適用できますか? はい、 IronXL は、太字フォント、背景色、境界線、数値形式、配置用のセル範囲のスタイル API を提供します。 カーティス・チャウ 今すぐエンジニアリングチームとチャット テクニカルライター 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 ワークブックを読み込む方法について説明します。 詳しく読む C# で GridView を書式付きで Excel にエクスポートする方法Interop とIronXLを使用して C#...
更新日 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 ワークブックを読み込む方法について説明します。 詳しく読む