IRONXLの使用 IronXLを使用してC#でExcelレポートを作成する方法 Curtis Chau 公開日:10月 19, 2025 Download IronXL NuGet Download テキストの検索と置換 Start Free Trial Copy for LLMs Copy for LLMs Copy page as Markdown for LLMs Open in ChatGPT Ask ChatGPT about this page Open in Gemini Ask Gemini about this page Open in Grok Ask Grok about this page Open in Perplexity Ask Perplexity about this page Share Share on Facebook Share on X (Twitter) Share on LinkedIn Copy URL Email article 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は、開発者がExcelを作成し、Excelスプレッドシートを読み取り、C#やVisual Basicのソースコードから直接Excelファイルを操作できる.NETのExcelライブラリです。 Microsoft Office Interopアプローチが完全なExcelアプリケーションに依存したり、Open XML SDKを通じて逆エンジニアリングしたりするのとは異なり、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 今日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で手動で作業するのと同様に簡単に指定できるようになります。 出力 複数のソースからデータを読み込む 現実のExcelレポートでは静的なデータを使用することは稀です。 IronXLは、さまざまなフォーマット、API、新しいDataTableソース、またはいくつかの異なるXMLファイルからExcelデータを統合することに優れています。 これにより、サーバーサイドまたはWebアプリケーションでのダイナミックなC# Excelレポート生成に最適です。 データベース統合 For database-driven Excel reports, IronXL seamlessly works with 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では、コレクションでExcelワークシートを簡単にMicrosoft 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ファイルの逆エンジニアリングよりもはるかに簡単になります。 出力 プロフェッショナル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 これらのフォーマットオプションにより、基本データがプロフェッショナルなレポートに変わります。 The style API covers everything from fonts and colors to borders and alignment, giving complete control over the Excel report appearance. 高度なフォーマットニーズのために、条件付きフォーマットを探索して重要なデータを自動的にハイライトすることができます。 動的なExcelレポート計算のための数式の使用 Excelの力はその数式にありますが、IronXLはExcel式の作成を完全にサポートしています: // 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の数学関数についてさらに学びましょう。 テンプレートに基づくレポート 繰り返しの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 このアプローチは、動的コンテンツを更新しながら一貫したフォーマットを維持し、月次レポートや標準化された文書に最適です。 ベストプラクティスとトラブルシューティング Excelレポート生成を実装する際には、次のヒントに注意してください: 大きなファイルのメモリ使用量:データをチャンクに分けて処理し、全データセットをロードしないでください(大きなExcelファイルに関するMicrosoftの推奨事項) 日付フォーマットの問題:Excel互換の日付にはDateTime.ToOADate()を使用してください(Excelの日付システムの説明) ファイルのロックエラー:usingステートメントまたは新しいMemoryStreamアプローチを使用してExcelオブジェクトを常に適切に破棄してください。 スタイルの欠落:背景色を最初に設定する必要があります 結論 IronXLは、Excelレポート生成を面倒な手動プロセスから自動化された信頼性の高いワークフローに変えます。 直感的なAPI、クロスプラットフォームサポート、包括的な機能セットにより、開発者は数時間ではなく数分でプロフェッショナルなExcelレポートを作成できます。 容易なデータ統合、強力なフォーマットオプション、および数式サポートの組み合わせは、Excelレポートを扱うすべてのC#開発者にとってIronXLを必須のツールにします。 For developers who are interested, IronXL offers a free trial and further licensing options for companies and individuals. 今IronXLを始めましょう。 無料で始める よくある質問 C#でExcelレポートを作成するにはどうすればよいですか? IronXLライブラリを使用することで、C#でExcelレポートを作成できます。これにより、フォーマット、数式、データベース統合などの機能を備えたExcelファイルの生成プロセスが簡素化されます。 Excelレポートの生成にIronXLを使用することの利点は何ですか? IronXLはExcelレポート生成を自動化する効率的な方法を提供し、手作業の手間を削減し、エラーを最小限に抑えます。高度なフォーマット、数式計算、データベースとのシームレスな統合など、さまざまな機能をサポートしています。 IronXLを使用してExcelレポートを作成する際にデータベースを統合することは可能ですか? はい、IronXLはデータベースとの容易な統合を可能にし、データベースからExcelレポートにデータを直接取り込むことができます。 IronXLを使用してExcelレポートにカスタムフォーマットを適用できますか? 絶対に、IronXLはカスタムフォーマットをサポートしており、プロフェッショナルな基準に合致するフォント、色、セルスタイルでExcelレポートをスタイリングできます。 IronXLはExcelレポートでの数式計算をサポートしていますか? はい、IronXLはExcelレポート内での数式の使用をサポートしており、生成したExcelファイル内での計算およびデータ分析を可能にします。 .NETアプリケーションでのExcelレポート生成を自動化する理由は何ですか? .NETアプリケーションでのExcelレポート生成を自動化することで、時間を節約し、人為的なエラーを減らし、手動によるレポート作成に関わる繰り返し作業を排除して生産性を向上させます。 IronXLはExcelレポート作成時に大規模なデータセットを処理できますか? IronXLは、大規模なデータセットを効率的に処理するように設計されており、多量のデータを処理する必要があるExcelレポートの生成に最適です。 IronXLを使用してどのような種類のExcelレポートを作成できるのですか? IronXLでは、財務諸表、販売分析、在庫ダッシュボードなど、特定のビジネスニーズに合わせたさまざまなタイプのExcelレポートを作成できます。 IronXLは、Excelレポート作成における手作業の削減にどのように役立ちますか? IronXLは、自動的にExcelファイルを生成することでレポート作成プロセスを自動化し、フォーマット、データ入力、計算に関わる手作業を大幅に削減します。 IronXLはプロフェッショナルなExcelレポートの作成に適していますか? はい、IronXLはプロフェッショナルなExcelレポートの作成に適しており、レポートがよくフォーマットされ、正確でビジネス使用に準備できた状態にするために、さまざまな機能を提供します。 Curtis Chau 今すぐエンジニアリングチームとチャット テクニカルライター Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。 関連する記事 公開日 10月 27, 2025 C#でExcelピボットテーブルを作成する方法 この明確なステップバイステップガイドを使用して、C# InteropとIronXLを使用してExcelでピボットテーブルを作成する方法を学びましょう。 詳しく読む 公開日 10月 27, 2025 C#で列ヘッダー付きのDataGridViewをExcelにエクスポートする方法 IronXLライブラリを使用したステップバイステップのC#チュートリアルで、列ヘッダーを保持しながらDataGridViewデータをExcelにエクスポートする方法を学びましょう。 詳しく読む 公開日 10月 27, 2025 .NET Core CSVリーダーとしてのIronXLの使用方法 実用的な例とともにIronXLを.NET Core CSVリーダーとして効果的に使用する方法を学びましょう。 詳しく読む C#でIronXLを使用してExcelファイルを生成する方法C# CSVパーサーでデータ処...
公開日 10月 27, 2025 C#でExcelピボットテーブルを作成する方法 この明確なステップバイステップガイドを使用して、C# InteropとIronXLを使用してExcelでピボットテーブルを作成する方法を学びましょう。 詳しく読む
公開日 10月 27, 2025 C#で列ヘッダー付きのDataGridViewをExcelにエクスポートする方法 IronXLライブラリを使用したステップバイステップのC#チュートリアルで、列ヘッダーを保持しながらDataGridViewデータをExcelにエクスポートする方法を学びましょう。 詳しく読む
公開日 10月 27, 2025 .NET Core CSVリーダーとしてのIronXLの使用方法 実用的な例とともにIronXLを.NET Core CSVリーダーとして効果的に使用する方法を学びましょう。 詳しく読む