IRONXLの使用 IronXLを使用してC#でExcelレポートを作成する方法 カーティス・チャウ 公開日:12月 18, 2025 IronXL をダウンロード NuGet ダウンロード DLL ダウンロード 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる ジェミニで開く このページについてGeminiに問い合わせる 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る C#でIronXLを使ってExcelレポートを作成する C#でExcelレポートを作成することは、現代のビジネスや.NETアプリケーションにおいて基本的な要件です。 財務諸表、販売分析、または在庫ダッシュボードを生成するかどうかにかかわらず、ExcelファイルやExcelスプレッドシートの作成プロセスを自動化することで、手動の労力を数時間節約し、エラーを減らすことができます。 IronXL は、Microsoft Office、MS Excel、または従来のInteropの依存関係を必要とせずに、C#でExcelレポートを作成するための強力で直感的なソリューションを開発者に提供します。 OLE AutomationやExcelアプリケーションに依存するアプローチとは異なり、IronXLはExcelワークブックとExcelデータをコード内で直接生成することを可能にし、必要な場合はわずか1行で行えます。 このガイドでは、IronXLを使ってExcelレポートを作成する方法を、あなた自身のプロジェクトに簡単に実装できるように、わかりやすいサンプルコード付きで説明します! IronXLとは何か、そしてExcelファイル生成になぜ利用するのか? IronXLは.NET Excelライブラリで、開発者はC#やVisual Basicのソースコードから直接Excelスプレッドシートを作成、読み込み、Excelファイルを操作することができます。 Excelアプリケーション全体やOpen XML SDKによるリバースエンジニアリングに依存するMicrosoft Office Interopアプローチとは異なり、IronXLはWindows、Linux、macOS、クラウド環境でExcelのインストールやサードパーティの依存関係を必要とせずに動作します。 これにより、サーバーサイドのExcelレポート、ワークフローの自動化、.NET Coreまたは.NET Frameworkで構築されたWebアプリケーションに理想的です。 手動のExcelプロセス、古いライブラリ、またはさまざまなXML名前空間をナビゲートする必要があるOpen XML生産性ツールワークフローから移行するチームには、IronXLは直感的なAPIを提供します。 それは、レガシーXLSファイルと、XMLファイルやさまざまなフォルダーを含む本質的にZIPファイルである現代のXLSXファイルの両方をサポートします。 新しいExcelワークブックの生成、複数のワークシートの操作、外部コードからのExcelデータのロードなど、IronXLは基礎となるフォーマットを理解することなく、プロセスを劇的に簡素化します。 Excelファイルを作成するためのIronXLの基本 Excelレポートを作成するためのIronXLのセットアップは数分で完了します。 Visual StudioのNuGetパッケージマネージャーを介してライブラリをインストールします: Install-Package IronXL.Excel Install-Package IronXL.Excel SHELL 今日IronXLをダウンロードして、Excelレポート生成の自動化を始めましょう。 インストールが完了すると、最初のExcelレポートを作成するにはわずか数行のコードのみが必要です: using IronXL; // Create a new Excel workbook for reports WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX); // Add a worksheet for the report WorkSheet reportSheet = workBook.CreateWorkSheet("Monthly Report"); // Add a title reportSheet["A1"].Value = "Sales Report - January 2024"; reportSheet["A1"].Style.Font.Bold = true; // Save the Excel report workBook.SaveAs("MonthlyReport.xlsx"); using IronXL; // Create a new Excel workbook for reports WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX); // Add a worksheet for the report WorkSheet reportSheet = workBook.CreateWorkSheet("Monthly Report"); // Add a title reportSheet["A1"].Value = "Sales Report - January 2024"; reportSheet["A1"].Style.Font.Bold = true; // Save the Excel report workBook.SaveAs("MonthlyReport.xlsx"); IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel このコードは、整形式のタイトルを持つ新しいExcelレポートファイルを作成します。 使い慣れたセル参照構文(reportSheet["A1"])により、開発者はExcelを手動で操作するのと同じように、データを表示する場所を正確に指定することが簡単になります。 出力 IronXLを使用してC#でExcelレポートを作成する方法: 画像1 - Excel出力例 複数のソースからデータを読み込む 現実のExcelレポートでは静的なデータを使用することは稀です。 IronXLは、さまざまなフォーマット、API、新しいDataTableソース、またはいくつかの異なるXMLファイルからExcelデータを統合することに優れています。 これにより、サーバーサイドまたはWebアプリケーションでのダイナミックなC# Excelレポート生成に最適です。 データベース統合 データベース駆動型のExcelレポートでは、IronXLはADO.NET DataTablesとシームレスに連携します: using System.Data; using System.Data.SqlClient; // Fetch data from database string connectionString = "Server=localhost;Database=Sales;Integrated Security=true;"; DataTable salesData = new DataTable(); using (SqlConnection conn = new SqlConnection(connectionString)) { SqlDataAdapter adapter = new SqlDataAdapter( "SELECT ProductName, Quantity, Revenue FROM MonthlySales", conn); adapter.Fill(salesData); } // Create Excel report from DataTable WorkBook workBook = WorkBook.Create(); WorkSheet sheet = workBook.CreateWorkSheet("Sales Data"); // Add headers sheet["A1"].Value = "Product"; sheet["B1"].Value = "Quantity"; sheet["C1"].Value = "Revenue"; // Populate data int row = 2; foreach (DataRow dataRow in salesData.Rows) { sheet[$"A{row}"].Value = dataRow["ProductName"]; sheet[$"B{row}"].Value = dataRow["Quantity"]; sheet[$"C{row}"].Value = dataRow["Revenue"]; row++; } using System.Data; using System.Data.SqlClient; // Fetch data from database string connectionString = "Server=localhost;Database=Sales;Integrated Security=true;"; DataTable salesData = new DataTable(); using (SqlConnection conn = new SqlConnection(connectionString)) { SqlDataAdapter adapter = new SqlDataAdapter( "SELECT ProductName, Quantity, Revenue FROM MonthlySales", conn); adapter.Fill(salesData); } // Create Excel report from DataTable WorkBook workBook = WorkBook.Create(); WorkSheet sheet = workBook.CreateWorkSheet("Sales Data"); // Add headers sheet["A1"].Value = "Product"; sheet["B1"].Value = "Quantity"; sheet["C1"].Value = "Revenue"; // Populate data int row = 2; foreach (DataRow dataRow in salesData.Rows) { sheet[$"A{row}"].Value = dataRow["ProductName"]; sheet[$"B{row}"].Value = dataRow["Quantity"]; sheet[$"C{row}"].Value = dataRow["Revenue"]; row++; } IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel このアプローチにより、SQL Serverから販売データを直接Excelレポートに読み込みます。 DataTable統合により、既存のデータアクセスコードを変更せずに使用できます。 より複雑なシナリオについては、SQL データベースから Excel をロードする方法をご覧ください。 コレクションの作業 インメモリデータ、APIレスポンスからのExcelデータ、または新しいDataTableの場合、コレクションはMicrosoft Excelやサードパーティに依存することなく、Excelワークシートに簡単に入力できます: var salesRecords = new List<SalesRecord> { new SalesRecord { Product = "Widget A", Units = 150, Price = 29.99m }, new SalesRecord { Product = "Widget B", Units = 82, Price = 49.99m } }; // Convert collection to Excel for (int i = 0; i < salesRecords.Count; i++) { sheet[$"A{i+2}"].Value = salesRecords[i].Product; sheet[$"B{i+2}"].Value = salesRecords[i].Units; sheet[$"C{i+2}"].Value = salesRecords[i].Price; } var salesRecords = new List<SalesRecord> { new SalesRecord { Product = "Widget A", Units = 150, Price = 29.99m }, new SalesRecord { Product = "Widget B", Units = 82, Price = 49.99m } }; // Convert collection to Excel for (int i = 0; i < salesRecords.Count; i++) { sheet[$"A{i+2}"].Value = salesRecords[i].Product; sheet[$"B{i+2}"].Value = salesRecords[i].Units; sheet[$"C{i+2}"].Value = salesRecords[i].Price; } IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel この方法により、.NETアプリケーション内でのC#によるExcelレポートの作成を可能にし、複数のワークシートまたはXLSXファイルを生成するためのプロセスが手動のOLE AutomationやXMLファイルの逆エンジニアリングよりもはるかに簡単になります。 出力 How to Create Excel Reports in C# Using IronXL: Image 2 - Sample worksheet from data outputHow to Create Excel Reports in C# Using IronXL: Image 2 - Sample worksheet from data output プロフェッショナルExcelレポートのフォーマット 生データだけではプロフェッショナルなレポートを作成できません。 IronXLは包括的なセルの書式設定オプションを提供し、洗練されたビジネスで使えるExcelファイルを作成します。 以下のコードは、IronXLを使用してこの操作がどれほど簡単かを示しています: using IronXL; using IronXL.Styles; class Program { static void Main(string[] args) { // Create a new workbook var workbook = WorkBook.Create(ExcelFileFormat.XLSX); // Add a new worksheet var sheet = workbook.CreateWorkSheet("MySheet"); // Add header values sheet["A1"].Value = "Product"; sheet["B1"].Value = "Quantity"; sheet["C1"].Value = "Price"; // Add sample data rows sheet["A2"].Value = "Laptop"; sheet["B2"].Value = 5; sheet["C2"].Value = 1299.99; sheet["A3"].Value = "Headphones"; sheet["B3"].Value = 15; sheet["C3"].Value = 199.50; sheet["A4"].Value = "Keyboard"; sheet["B4"].Value = 10; sheet["C4"].Value = 89.99; sheet["A5"].Value = "Monitor"; sheet["B5"].Value = 7; sheet["C5"].Value = 249.00; // Header formatting var headerRange = sheet["A1:C1"]; headerRange.Style.Font.Bold = true; headerRange.Style.SetBackgroundColor("#4472C4"); headerRange.Style.Font.Color = "#FFFFFF"; headerRange.Style.BottomBorder.Type = BorderType.Thick; // Number formatting for currency sheet["C:C"].FormatString = "$#,##0.00"; // Alternating row colors for readability for (int row = 2; row <= 10; row++) { if (row % 2 == 0) { sheet[$"A{row}:C{row}"].Style.SetBackgroundColor("#F2F2F2"); } } // Column width adjustment sheet.Columns[0].Width = 15 * 256; // Width in 1/256th of character width sheet.Columns[2].Width = 12 * 256; // Add borders around data var dataRange = sheet["A1:C10"]; dataRange.Style.TopBorder.Type = BorderType.Thin; dataRange.Style.RightBorder.Type = BorderType.Thin; dataRange.Style.BottomBorder.Type = BorderType.Thin; dataRange.Style.LeftBorder.Type = BorderType.Thin; // Save the workbook to a file workbook.SaveAs("MyWorkbook.xlsx"); } } using IronXL; using IronXL.Styles; class Program { static void Main(string[] args) { // Create a new workbook var workbook = WorkBook.Create(ExcelFileFormat.XLSX); // Add a new worksheet var sheet = workbook.CreateWorkSheet("MySheet"); // Add header values sheet["A1"].Value = "Product"; sheet["B1"].Value = "Quantity"; sheet["C1"].Value = "Price"; // Add sample data rows sheet["A2"].Value = "Laptop"; sheet["B2"].Value = 5; sheet["C2"].Value = 1299.99; sheet["A3"].Value = "Headphones"; sheet["B3"].Value = 15; sheet["C3"].Value = 199.50; sheet["A4"].Value = "Keyboard"; sheet["B4"].Value = 10; sheet["C4"].Value = 89.99; sheet["A5"].Value = "Monitor"; sheet["B5"].Value = 7; sheet["C5"].Value = 249.00; // Header formatting var headerRange = sheet["A1:C1"]; headerRange.Style.Font.Bold = true; headerRange.Style.SetBackgroundColor("#4472C4"); headerRange.Style.Font.Color = "#FFFFFF"; headerRange.Style.BottomBorder.Type = BorderType.Thick; // Number formatting for currency sheet["C:C"].FormatString = "$#,##0.00"; // Alternating row colors for readability for (int row = 2; row <= 10; row++) { if (row % 2 == 0) { sheet[$"A{row}:C{row}"].Style.SetBackgroundColor("#F2F2F2"); } } // Column width adjustment sheet.Columns[0].Width = 15 * 256; // Width in 1/256th of character width sheet.Columns[2].Width = 12 * 256; // Add borders around data var dataRange = sheet["A1:C10"]; dataRange.Style.TopBorder.Type = BorderType.Thin; dataRange.Style.RightBorder.Type = BorderType.Thin; dataRange.Style.BottomBorder.Type = BorderType.Thin; dataRange.Style.LeftBorder.Type = BorderType.Thin; // Save the workbook to a file workbook.SaveAs("MyWorkbook.xlsx"); } } IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel これらのフォーマットオプションにより、基本データがプロフェッショナルなレポートに変わります。 スタイルAPIは、フォントと色から境界線と配置まですべてをカバーし、Excelレポートの外観を完全に制御します。 高度な書式設定が必要な場合は、条件付き書式を調べて、重要なデータを自動的に強調表示してください。 C#でIronXLを使用してExcelレポートを作成する方法: 画像3 - フォーマットされたExcel出力。 動的なExcelレポート計算のための数式の使用 IronXLはエクセルの数式作成を完全にサポートしています: // Add formula for row totals sheet["D1"].Value = "Total"; sheet["D2"].Formula = "=B2*C2"; // Copy formula down the column for (int row = 3; row <= 10; row++) { sheet[$"D{row}"].Formula = $"=B{row}*C{row}"; } // Add summary formulas sheet["A12"].Value = "Summary"; sheet["B12"].Formula = "=SUM(B2:B10)"; sheet["C12"].Formula = "=AVERAGE(C2:C10)"; sheet["D12"].Formula = "=SUM(D2:D10)"; // Add formula for row totals sheet["D1"].Value = "Total"; sheet["D2"].Formula = "=B2*C2"; // Copy formula down the column for (int row = 3; row <= 10; row++) { sheet[$"D{row}"].Formula = $"=B{row}*C{row}"; } // Add summary formulas sheet["A12"].Value = "Summary"; sheet["B12"].Formula = "=SUM(B2:B10)"; sheet["C12"].Formula = "=AVERAGE(C2:C10)"; sheet["D12"].Formula = "=SUM(D2:D10)"; IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 数式サポートには、SUM、AVERAGE、IF、VLOOKUPなどのExcelの標準関数がすべて含まれています。 IronXLは数式依存関係と計算順序を自動で扱い、複雑な計算を含むExcelレポートの生成を簡素化します。 IronXLの数学関数についてはこちらをご覧ください。 C#でIronXLを使用してExcelレポートを作成する方法: 画像4 - 数式による出力例How to Create Excel Reports in C# Using IronXL: Image 4 - Example output with formulas. テンプレートに基づくレポート 繰り返しのExcelレポートや標準化されたワークブックのために、IronXLはテンプレートに基づく生成をサポートしており、開発者がOpen XML SDK、relsファイル、またはさまざまなフォルダーを扱うことなくテンプレートからExcelファイルを作成することを可能にします: // Load existing template Workbook templateBook = Workbook.Load("ReportTemplate.xlsx"); Worksheet templateSheet = templateBook.DefaultWorksheet; // Find and replace template markers foreach (var cell in templateSheet["A1:Z100"]) { if (cell.Text.Contains("{{CompanyName}}")) cell.Value = cell.Text.Replace("{{CompanyName}}", "Acme Corp"); if (cell.Text.Contains("{{ReportDate}}")) cell.Value = cell.Text.Replace("{{ReportDate}}", DateTime.Now.ToString("MMMM yyyy")); } // Save as new report templateBook.SaveAs($"Report_{DateTime.Now:yyyyMMdd}.xlsx"); // Load existing template Workbook templateBook = Workbook.Load("ReportTemplate.xlsx"); Worksheet templateSheet = templateBook.DefaultWorksheet; // Find and replace template markers foreach (var cell in templateSheet["A1:Z100"]) { if (cell.Text.Contains("{{CompanyName}}")) cell.Value = cell.Text.Replace("{{CompanyName}}", "Acme Corp"); if (cell.Text.Contains("{{ReportDate}}")) cell.Value = cell.Text.Replace("{{ReportDate}}", DateTime.Now.ToString("MMMM yyyy")); } // Save as new report templateBook.SaveAs($"Report_{DateTime.Now:yyyyMMdd}.xlsx"); IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel このアプローチは、動的コンテンツを更新しながら一貫したフォーマットを維持し、月次レポートや標準化された文書に最適です。 C#でIronXLを使用してExcelレポートを作成する方法: 画像5 - レポート・テンプレートとテンプレートを使用して作成したExcelファイル</a ベストプラクティスとトラブルシューティング Excelレポート生成を実装する際には、次のヒントに注意してください: 大きなファイルでのメモリ使用:データセット全体を読み込むのではなく、データをチャンク単位で処理する(大きな Excel ファイルに対する Microsoft の推奨事項)。 日付書式の問題:Excel 互換の日付には DateTime.ToOADate() を使用してください (Excel 日付システムの説明)。 ファイルロックのエラー:using ステートメントまたは新しい MemoryStream アプローチを使用して、常に Excel オブジェクトを適切に破棄してください。 スタイルの欠落:いくつかのスタイルプロパティは、最初に背景色を設定する必要があります 結論 IronXLは、Excelレポート生成を面倒な手動プロセスから自動化された信頼性の高いワークフローに変えます。 直感的なAPI、クロスプラットフォームサポート、包括的な機能セットにより、開発者は数時間ではなく数分でプロフェッショナルなExcelレポートを作成できます。 容易なデータ統合、強力なフォーマットオプション、および数式サポートの組み合わせは、Excelレポートを扱うすべてのC#開発者にとってIronXLを必須のツールにします。 興味のある開発者のために、IronXLは無料トライアルと企業や個人向けのライセンスオプションを提供しています。 今IronXLを始めましょう。 無料で始める カーティス・チャウ 今すぐエンジニアリングチームとチャット テクニカルライター Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。 関連する記事 公開日 12月 19, 2025 C#を使用してExcelでピボット・テーブルを作成する方法 Interop vs IronXL Office依存性なしでC#でExcelピボットテーブルを構築します。IronXLは、Excel Interopの複雑さなしでピボットスタイルのレポートを作成するための強力なデータ操作を提供します。 詳しく読む 公開日 12月 18, 2025 C# IronXLを使用した列ヘッダー付きDataGridViewのExcelへのエクスポート IronXLライブラリを使用したステップバイステップのC#チュートリアルで、列ヘッダーを保持しながらDataGridViewデータをExcelにエクスポートする方法を学びましょう。 詳しく読む 公開日 12月 18, 2025 C#でIronXLを使用してMS Excelファイルのデータを簡単にインポート、読み取り、操作する方法 IronXLを使用してC#でExcelデータをインポートする方法を学びます。 詳しく読む C#でIronXLを使用してExcelファイルを生成する方法C# CSVパーサーでデータ処...
公開日 12月 19, 2025 C#を使用してExcelでピボット・テーブルを作成する方法 Interop vs IronXL Office依存性なしでC#でExcelピボットテーブルを構築します。IronXLは、Excel Interopの複雑さなしでピボットスタイルのレポートを作成するための強力なデータ操作を提供します。 詳しく読む
公開日 12月 18, 2025 C# IronXLを使用した列ヘッダー付きDataGridViewのExcelへのエクスポート IronXLライブラリを使用したステップバイステップのC#チュートリアルで、列ヘッダーを保持しながらDataGridViewデータをExcelにエクスポートする方法を学びましょう。 詳しく読む
公開日 12月 18, 2025 C#でIronXLを使用してMS Excelファイルのデータを簡単にインポート、読み取り、操作する方法 IronXLを使用してC#でExcelデータをインポートする方法を学びます。 詳しく読む