IRONXLの使用 IronXLを使って C# で Excel レポートを作成する方法 カーティス・チャウ 更新日:2026年2月27日 IronXL をダウンロード NuGet ダウンロード DLL ダウンロード 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる Grokで開く このページについてGrokに質問する 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る Creating Excel Reports in C# with IronXL 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 今日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"); $vbLabelText $csharpLabel このコードは、整形式のタイトルを持つ新しいExcelレポートファイルを作成します。 おなじみのセル参照構文(reportSheet["A1"])を使用すると、開発者は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++; } $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; } $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"); } } $vbLabelText $csharpLabel これらのフォーマットオプションにより、基本データがプロフェッショナルなレポートに変わります。 スタイルAPIは、フォントや色からボーダーと配置までをカバーし、Excelレポートの外観を完全に制御できます。 高度なフォーマットニーズのために、条件付きフォーマットを探索して重要なデータを自動的にハイライトすることができます。 動的な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)"; $vbLabelText $csharpLabel 数式サポートには、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"); $vbLabelText $csharpLabel このアプローチは、動的コンテンツを更新しながら一貫したフォーマットを維持し、月次レポートや標準化された文書に最適です。 ベストプラクティスとトラブルシューティング Excelレポート生成を実装する際には、次のヒントに注意してください: 大容量ファイルのメモリ使用: データセット全体を読み込むよりも、チャンクごとにデータを処理します (Microsoftの大容量Excelファイルに関する推奨事項) 日付形式の問題: Excel互換の日付にはDateTime.ToOADate()を使用します (Excelの日付システムの説明) ファイルロックエラー: MemoryStreamアプローチを使用して、Excelオブジェクトを適切に処分してください。 スタイルの欠落:いくつかのスタイルプロパティは、最初に背景色を設定する必要があります 結論 IronXLは、Excelレポート生成を面倒な手動プロセスから自動化された信頼性の高いワークフローに変えます。 直感的なAPI、クロスプラットフォームサポート、包括的な機能セットにより、開発者は数時間ではなく数分でプロフェッショナルなExcelレポートを作成できます。 容易なデータ統合、強力なフォーマットオプション、および数式サポートの組み合わせは、Excelレポートを扱うすべてのC#開発者にとってIronXLを必須のツールにします。 興味のある開発者のために、IronXLは無料トライアルと企業や個人向けのライセンスオプションを提供しています。 今IronXLを始めましょう。 無料で始める よくある質問 IronXLはC#で何に使われていますか? IronXLは、開発者が簡単にExcelファイルを作成、編集、読み取ることを可能にするC#用の強力なライブラリです。高度な書式設定、数式、データ統合により、ProfessionalなExcelレポートの作成をサポートします。 IronXLを使ってExcelレポートを作成するにはどうすればいいですか? IronXLを使用してExcelレポートを作成するには、その堅牢なAPIを利用して、データの追加、セルの書式設定、数式の適用、データベースとの統合をすべてC#環境で行うことができます。 IronXLはエクセルのレポート作成にどのような機能を提供していますか? IronXLはセルの書式設定、数式の適用、データ検証、チャート作成、包括的なExcelレポート作成のためのシームレスなデータベース統合などの機能を提供します。 IronXLはデータベース統合をサポートしていますか? IronXLはデータベースとの統合をサポートしており、データベースから直接データを取得し、Excelレポートに取り込むことができます。 IronXLは複雑なExcelの数式を扱えますか? IronXLは幅広いExcelの数式を扱うことができ、開発者はExcelのレポート内で複雑な計算を実行し、データ処理を自動化することができます。 IronXLを使ってExcelのセルをフォーマットすることはできますか? IronXLは幅広い書式設定機能を備えており、フォントのスタイル、色、枠線など、セルの外観をカスタマイズして、視覚的に魅力的なExcelレポートを作成することができます。 IronXLを使ってExcelでチャートを作成できますか? IronXLはExcelスプレッドシート内で様々なチャートを作成することができ、データを視覚的に表現し、レポートの解釈性を高めることができます。 IronXLはエクセルのレポート作成プロセスをどのように簡素化しますか? IronXLはC#プログラミング環境において、データの入力、フォーマット、計算、出力を効率化する包括的な機能を提供することにより、Excelのレポート作成プロセスを簡素化します。 IronXLは大量のデータセットを効率的に処理できますか? IronXLはパフォーマンスを最適化し、大規模なデータセットを効率的に処理できるため、速度や信頼性を犠牲にすることなく複雑なレポートを作成するのに適しています。 IronXLはどのようなプログラミング言語に対応していますか? IronXLは特にC#用に設計されており、.NETフレームワークで作業する開発者にシームレスな統合と機能を提供します。 カーティス・チャウ 今すぐエンジニアリングチームとチャット テクニカルライター 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 ワークブックを読み込む方法について説明します。 詳しく読む Office Interop を使用せずに C# で Excel ファイルを生成する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 ワークブックを読み込む方法について説明します。 詳しく読む