C#でExcelファイルを作成する方法

How to Create an Excel File in C# (.NET Tutorial)

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronXL はMicrosoft Office や Interop に依存せずに、プログラムで XLSX スプレッドシートを作成、読み取り、編集できる強力な C# および .NET Excel ライブラリです。 .NET 8、.NET 9、.NET Core、.NET Framework をサポートし、Windows、Linux、macOS、Azure、AWS で実行されます。

このチュートリアルでは、セル値の設定、書式の適用、数式の追加、XLSX、CSV へのエクスポートなど、C# で完全な Excel ブックを構築する手順を、ステップバイステップのコード例とともに説明します。

クイックスタート: Excel ファイルを作成する

IronXLを使用してすぐに新しいExcelファイルを立ち上げましょう。フォーマットを選択し、シートを追加し、任意のセル値を設定して保存するだけです。 これは、直感的な API 呼び出しと相互運用性の問題を一切伴わずに XLSX ファイルを生成する最も簡単な方法です。

  1. IronXL をNuGetパッケージマネージャでインストール

    PM > Install-Package IronXl.Excel
  2. このコード スニペットをコピーして実行します。

    WorkBook book = IronXl.WorkBook.Create(IronXl.ExcelFileFormat.XLSX); book.CreateWorkSheet("Sheet1")["A1"].Value = "Hello World"; book.SaveAs("MyFile.xlsx");
  3. 実際の環境でテストするためにデプロイする

    今日プロジェクトで IronXL を使い始めましょう無料トライアル

    arrow pointer

IronXLとは、なぜExcelファイル作成に使用するのか?

IronXLは直感的なC# & VB Excel APIで、.NETでExcelスプレッドシートファイルを読み取り、編集、作成することを優れたパフォーマンスで可能にします。 従来のアプローチとは異なり、Microsoft OfficeのインストールやExcel Interopの使用が不要で、デプロイがよりシンプルで信頼性があります。

IronXLは、.NET 9、.NET 8、.NET Core、.NET Framework、Xamarin、モバイル、Linux、macOS、およびAzure環境を完全にサポートしています。

IronXLの機能

  • .NET開発チームからの直接のサポート
  • Microsoft Visual Studioでの迅速なインストール
  • 開発用に無料。 ライセンスは$799から

Excelファイルをすばやく作成して保存する方法は?

NuGetからIronXLをインストールするか、DLLを直接ダウンロードしてください。 WorkBook クラスはすべての Excel 操作のエントリ ポイントであり、WorkSheet クラスは個々のシートを操作するメソッドを提供します。完全なステップ バイ ステップのチュートリアルは、以下の手順 1 から始まります。


How Do I Install the IronXL C# Library?

Visual Studio の NuGet パッケージ マネージャー経由で IronXL をインストールするか、パッケージ マネージャー コンソールを使用します。

Install-Package IronXl.Excel

NuGet パッケージ マネージャーには、[プロジェクト] メニューから、またはソリューション エクスプローラーでプロジェクトを右クリックしてアクセスします。

Visual Studio プロジェクト メニューに NuGet パッケージの管理オプションが表示されている

**図3** –*プロジェクトメニューからNuGetパッケージマネージャーにアクセスする*

ソリューション エクスプローラーのコンテキスト メニューに NuGet パッケージの管理オプションが表示されている

**図4** –*ソリューションエクスプローラーの右クリックコンテキストメニュー*


パッケージ リストで IronXl.Excel を参照し、[インストール] をクリックします。


NuGet パッケージ マネージャーで IronXl.Excel パッケージのインストール準備完了が表示されている

**図5** – *NuGetパッケージマネージャー経由でIronXl.Excelをインストールする*

または、 IronXL DLL を直接ダウンロードし、ソリューション エクスプローラー > 参照 > IronXL.dll の参照からプロジェクトへの参照として追加します。

IronXLウェブサイトのダウンロードページにはインストール手順とダウンロードボタンが表示されています

**図6** –*公式サイトからIronXLライブラリをダウンロードする*

{i:(IronXL では、Microsoft Office または Excel Interop のインストールは不要です。Windows、Linux、macOS、クラウド環境など、.NET 対応のあらゆるプラットフォームで実行されます。)}


.NET プロジェクトをセットアップするにはどうすればよいですか?

IronXL は、コンソール アプリ、ASP.NET Web アプリ、API、デスクトップ ツールなど、あらゆる.NET プロジェクト タイプで動作します。 以下の例では ASP.NET Web アプリケーションを使用していますが、プロセスはすべてのプロジェクト テンプレートで同じです。

以下の手順に従って、ASP.NETサイトを作成します:

  1. Visual Studioを開く 2.ファイル > 新規プロジェクトをクリック
  2. プロジェクトタイプ一覧でVisual C#の下のWebを選択
  3. ASP.NET Webアプリケーションを選択


    Visual Studio の [新しいプロジェクト] ダイアログで ASP.NET Web アプリケーションが選択された状態

    図1Create new ASP.NET project

  4. OKをクリック
  5. Web Formsテンプレートを選択

    ASP.NET プロジェクト テンプレートの選択に Web フォーム オプションが表示されている

    図2Select Web Forms template

  6. OKをクリック

プロジェクトが準備できたら、IronXLをインストールしてプログラムでExcelファイルを作成し始めましょう。


How Do I Create an Excel Workbook in C#?

IronXLを使った新しいExcelワークブックの作成は1行のコードのみ必要です:

using IronXL;

// Create workbook with XLSX format (recommended for modern Excel)
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);

// Alternative: Create legacy XLS format for older Excel versions
WorkBook legacyWorkbook = WorkBook.Create(ExcelFileFormat.XLS);
using IronXL;

// Create workbook with XLSX format (recommended for modern Excel)
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);

// Alternative: Create legacy XLS format for older Excel versions
WorkBook legacyWorkbook = WorkBook.Create(ExcelFileFormat.XLS);
$vbLabelText   $csharpLabel

WorkBook.Create メソッドは、 XLS (Excel 97-2003) と XLSX (Excel 2007+) の両方の形式をサポートします。 より良いパフォーマンスと小さなファイルサイズを得るためにXLSXを推奨します。

  • XLSX : すべての最新バージョンのExcel(2007以降)に推奨されます。ファイルサイズが小さく、パフォーマンスが向上します。
  • XLS : Excel 97~2003との互換性のためのレガシー形式

ワークブックにワークシートを追加するにはどうすればよいですか?

ワークシートを追加するのは簡単です:

// Create a worksheet with custom name for budget tracking
WorkSheet budgetSheet = workbook.CreateWorkSheet("2020 Budget");

// Add multiple worksheets for different purposes
WorkSheet salesSheet = workbook.CreateWorkSheet("Sales Data");
WorkSheet inventorySheet = workbook.CreateWorkSheet("Inventory");

// Access existing worksheet by name
WorkSheet existingSheet = workbook.GetWorkSheet("2020 Budget");
// Create a worksheet with custom name for budget tracking
WorkSheet budgetSheet = workbook.CreateWorkSheet("2020 Budget");

// Add multiple worksheets for different purposes
WorkSheet salesSheet = workbook.CreateWorkSheet("Sales Data");
WorkSheet inventorySheet = workbook.CreateWorkSheet("Inventory");

// Access existing worksheet by name
WorkSheet existingSheet = workbook.GetWorkSheet("2020 Budget");
$vbLabelText   $csharpLabel

ワークブックは1つ以上のワークシートを含みます。 各ワークシートは行と列で構成され、それらの交差点にはセルがあります。 ワークブックに新しいシートを追加するには、 CreateWorkSheet メソッドを使用します。

  • CreateWorkSheet("name") : 指定されたタブ名で新しいシートを追加します
  • GetWorkSheet("name") : 名前で既存のシートを取得します
  • シート名はワークブック内で一意である必要があります

Excel でセルの値を設定するにはどうすればいいですか?

セルの値を手動で設定するにはどうすればよいですか?

個別のセルの値の設定は直感的なExcel風の構文を使用します:

// Set month names in first row for annual budget spreadsheet
workSheet["A1"].Value = "January";
workSheet["B1"].Value = "February";
workSheet["C1"].Value = "March";
workSheet["D1"].Value = "April";
workSheet["E1"].Value = "May";
workSheet["F1"].Value = "June";
workSheet["G1"].Value = "July";
workSheet["H1"].Value = "August";
workSheet["I1"].Value = "September";
workSheet["J1"].Value = "October";
workSheet["K1"].Value = "November";
workSheet["L1"].Value = "December";

// Set different data types - IronXL handles conversion automatically
workSheet["A2"].Value = 1500.50m;  // Decimal for currency
workSheet["A3"].Value = DateTime.Now;  // Date values
workSheet["A4"].Value = true;  // Boolean values
// Set month names in first row for annual budget spreadsheet
workSheet["A1"].Value = "January";
workSheet["B1"].Value = "February";
workSheet["C1"].Value = "March";
workSheet["D1"].Value = "April";
workSheet["E1"].Value = "May";
workSheet["F1"].Value = "June";
workSheet["G1"].Value = "July";
workSheet["H1"].Value = "August";
workSheet["I1"].Value = "September";
workSheet["J1"].Value = "October";
workSheet["K1"].Value = "November";
workSheet["L1"].Value = "December";

// Set different data types - IronXL handles conversion automatically
workSheet["A2"].Value = 1500.50m;  // Decimal for currency
workSheet["A3"].Value = DateTime.Now;  // Date values
workSheet["A4"].Value = true;  // Boolean values
$vbLabelText   $csharpLabel

Cell.Value プロパティは、文字列、数値、日付、ブール値など、さまざまなデータ型を受け入れます。 IronXLはデータタイプに基づいてセルを自動的にフォーマットします。

セルの値を動的に設定するにはどうすればよいですか?

動的な値設定はデータ駆動型アプリケーションに最適です:

// Initialize random number generator for sample data
Random r = new Random();

// Populate cells with random budget data for each month
for (int i = 2; i <= 11; i++)
{
    // Set different budget categories with increasing ranges
    workSheet[$"A{i}"].Value = r.Next(1, 1000);     // Office Supplies
    workSheet[$"B{i}"].Value = r.Next(1000, 2000);  // Utilities
    workSheet[$"C{i}"].Value = r.Next(2000, 3000);  // Rent
    workSheet[$"D{i}"].Value = r.Next(3000, 4000);  // Salaries
    workSheet[$"E{i}"].Value = r.Next(4000, 5000);  // Marketing
    workSheet[$"F{i}"].Value = r.Next(5000, 6000);  // IT Services
    workSheet[$"G{i}"].Value = r.Next(6000, 7000);  // Travel
    workSheet[$"H{i}"].Value = r.Next(7000, 8000);  // Training
    workSheet[$"I{i}"].Value = r.Next(8000, 9000);  // Insurance
    workSheet[$"J{i}"].Value = r.Next(9000, 10000); // Equipment
    workSheet[$"K{i}"].Value = r.Next(10000, 11000); // Research
    workSheet[$"L{i}"].Value = r.Next(11000, 12000); // Misc
}

// Alternative: Set range of cells with same value
workSheet["A13:L13"].Value = 0; // Initialize totals row
// Initialize random number generator for sample data
Random r = new Random();

// Populate cells with random budget data for each month
for (int i = 2; i <= 11; i++)
{
    // Set different budget categories with increasing ranges
    workSheet[$"A{i}"].Value = r.Next(1, 1000);     // Office Supplies
    workSheet[$"B{i}"].Value = r.Next(1000, 2000);  // Utilities
    workSheet[$"C{i}"].Value = r.Next(2000, 3000);  // Rent
    workSheet[$"D{i}"].Value = r.Next(3000, 4000);  // Salaries
    workSheet[$"E{i}"].Value = r.Next(4000, 5000);  // Marketing
    workSheet[$"F{i}"].Value = r.Next(5000, 6000);  // IT Services
    workSheet[$"G{i}"].Value = r.Next(6000, 7000);  // Travel
    workSheet[$"H{i}"].Value = r.Next(7000, 8000);  // Training
    workSheet[$"I{i}"].Value = r.Next(8000, 9000);  // Insurance
    workSheet[$"J{i}"].Value = r.Next(9000, 10000); // Equipment
    workSheet[$"K{i}"].Value = r.Next(10000, 11000); // Research
    workSheet[$"L{i}"].Value = r.Next(11000, 12000); // Misc
}

// Alternative: Set range of cells with same value
workSheet["A13:L13"].Value = 0; // Initialize totals row
$vbLabelText   $csharpLabel

文字列補間 ($"A{i}") を使用すると、セルを動的に参照することが容易になります。 Range インデクサーは、個々のセルと範囲の両方をサポートします。

データベースから Excel にデータを入力するにはどうすればよいですか?

データベースからExcelにデータをロードすることは一般的な要件です:

using System.Data;
using System.Data.SqlClient;
using IronXL;

// Database connection setup for retrieving sales data
string connectionString = @"Data Source=ServerName;Initial Catalog=SalesDB;Integrated Security=true";
string query = "SELECT ProductName, Quantity, UnitPrice, TotalSales FROM MonthlySales";

// Create DataSet to hold query results
DataSet salesData = new DataSet();

using (SqlConnection connection = new SqlConnection(connectionString))
using (SqlDataAdapter adapter = new SqlDataAdapter(query, connection))
{
    // Fill DataSet with sales information
    adapter.Fill(salesData);
}

// Write headers for database columns
workSheet["A1"].Value = "Product Name";
workSheet["B1"].Value = "Quantity";
workSheet["C1"].Value = "Unit Price";
workSheet["D1"].Value = "Total Sales";

// Apply header formatting
workSheet["A1:D1"].Style.Font.Bold = true;
workSheet["A1:D1"].Style.SetBackgroundColor("#4472C4");
workSheet["A1:D1"].Style.Font.FontColor = "#FFFFFF";

// Populate Excel with database records
DataTable salesTable = salesData.Tables[0];
for (int row = 0; row < salesTable.Rows.Count; row++)
{
    int excelRow = row + 2; // Start from row 2 (after headers)

    workSheet[$"A{excelRow}"].Value = salesTable.Rows[row]["ProductName"].ToString();
    workSheet[$"B{excelRow}"].Value = Convert.ToInt32(salesTable.Rows[row]["Quantity"]);
    workSheet[$"C{excelRow}"].Value = Convert.ToDecimal(salesTable.Rows[row]["UnitPrice"]);
    workSheet[$"D{excelRow}"].Value = Convert.ToDecimal(salesTable.Rows[row]["TotalSales"]);

    // Format currency columns
    workSheet[$"C{excelRow}"].FormatString = "$#,##0.00";
    workSheet[$"D{excelRow}"].FormatString = "$#,##0.00";
}

// Add summary row with formulas
int summaryRow = salesTable.Rows.Count + 2;
workSheet[$"A{summaryRow}"].Value = "TOTAL";
workSheet[$"B{summaryRow}"].Formula = $"=SUM(B2:B{summaryRow-1})";
workSheet[$"D{summaryRow}"].Formula = $"=SUM(D2:D{summaryRow-1})";
using System.Data;
using System.Data.SqlClient;
using IronXL;

// Database connection setup for retrieving sales data
string connectionString = @"Data Source=ServerName;Initial Catalog=SalesDB;Integrated Security=true";
string query = "SELECT ProductName, Quantity, UnitPrice, TotalSales FROM MonthlySales";

// Create DataSet to hold query results
DataSet salesData = new DataSet();

using (SqlConnection connection = new SqlConnection(connectionString))
using (SqlDataAdapter adapter = new SqlDataAdapter(query, connection))
{
    // Fill DataSet with sales information
    adapter.Fill(salesData);
}

// Write headers for database columns
workSheet["A1"].Value = "Product Name";
workSheet["B1"].Value = "Quantity";
workSheet["C1"].Value = "Unit Price";
workSheet["D1"].Value = "Total Sales";

// Apply header formatting
workSheet["A1:D1"].Style.Font.Bold = true;
workSheet["A1:D1"].Style.SetBackgroundColor("#4472C4");
workSheet["A1:D1"].Style.Font.FontColor = "#FFFFFF";

// Populate Excel with database records
DataTable salesTable = salesData.Tables[0];
for (int row = 0; row < salesTable.Rows.Count; row++)
{
    int excelRow = row + 2; // Start from row 2 (after headers)

    workSheet[$"A{excelRow}"].Value = salesTable.Rows[row]["ProductName"].ToString();
    workSheet[$"B{excelRow}"].Value = Convert.ToInt32(salesTable.Rows[row]["Quantity"]);
    workSheet[$"C{excelRow}"].Value = Convert.ToDecimal(salesTable.Rows[row]["UnitPrice"]);
    workSheet[$"D{excelRow}"].Value = Convert.ToDecimal(salesTable.Rows[row]["TotalSales"]);

    // Format currency columns
    workSheet[$"C{excelRow}"].FormatString = "$#,##0.00";
    workSheet[$"D{excelRow}"].FormatString = "$#,##0.00";
}

// Add summary row with formulas
int summaryRow = salesTable.Rows.Count + 2;
workSheet[$"A{summaryRow}"].Value = "TOTAL";
workSheet[$"B{summaryRow}"].Formula = $"=SUM(B2:B{summaryRow-1})";
workSheet[$"D{summaryRow}"].Formula = $"=SUM(D2:D{summaryRow-1})";
$vbLabelText   $csharpLabel

この例は、データベースからのExcelデータの読み取り、フォーマットの適用、および計算のための数式の使用を示しています。 FormatString プロパティを使用すると、Excel と同様にカスタム数値書式を設定できます。


Excel のセルに書式を適用するにはどうすればよいですか?

Excel で背景色を設定するにはどうすればよいでしょうか?

セルのスタイリングは可読性と視覚的魅力を強化します:

// Set header row background to light gray using hex color
workSheet["A1:L1"].Style.SetBackgroundColor("#d3d3d3");

// Apply different colors for data categorization
workSheet["A2:A11"].Style.SetBackgroundColor("#E7F3FF"); // Light blue for January
workSheet["B2:B11"].Style.SetBackgroundColor("#FFF2CC"); // Light yellow for February

// Highlight important cells with bold colors
workSheet["L12"].Style.SetBackgroundColor("#FF0000"); // Red for totals
workSheet["L12"].Style.Font.FontColor = "#FFFFFF"; // White text

// Create alternating row colors for better readability
for (int row = 2; row <= 11; row++)
{
    if (row % 2 == 0)
    {
        workSheet[$"A{row}:L{row}"].Style.SetBackgroundColor("#F2F2F2");
    }
}
// Set header row background to light gray using hex color
workSheet["A1:L1"].Style.SetBackgroundColor("#d3d3d3");

// Apply different colors for data categorization
workSheet["A2:A11"].Style.SetBackgroundColor("#E7F3FF"); // Light blue for January
workSheet["B2:B11"].Style.SetBackgroundColor("#FFF2CC"); // Light yellow for February

// Highlight important cells with bold colors
workSheet["L12"].Style.SetBackgroundColor("#FF0000"); // Red for totals
workSheet["L12"].Style.Font.FontColor = "#FFFFFF"; // White text

// Create alternating row colors for better readability
for (int row = 2; row <= 11; row++)
{
    if (row % 2 == 0)
    {
        workSheet[$"A{row}:L{row}"].Style.SetBackgroundColor("#F2F2F2");
    }
}
$vbLabelText   $csharpLabel

Style.SetBackgroundColor メソッドは 16 進カラーコードを受け入れます。 背景色とフォントカラーを組み合わせてプロフェッショナルな外観のスプレッドシートを作成します。

Excel で境界線を作成するにはどうすればよいでしょうか?

枠線はデータ領域を定義し、構造を改善します:

using IronXL;
using IronXl.Styles;

// Create header border - thick bottom line to separate from data
workSheet["A1:L1"].Style.TopBorder.SetColor("#000000");
workSheet["A1:L1"].Style.TopBorder.Type = BorderType.Thick;
workSheet["A1:L1"].Style.BottomBorder.SetColor("#000000");
workSheet["A1:L1"].Style.BottomBorder.Type = BorderType.Thick;

// Add right border to last column
workSheet["L2:L11"].Style.RightBorder.SetColor("#000000");
workSheet["L2:L11"].Style.RightBorder.Type = BorderType.Medium;

// Create bottom border for data area
workSheet["A11:L11"].Style.BottomBorder.SetColor("#000000");
workSheet["A11:L11"].Style.BottomBorder.Type = BorderType.Medium;

// Apply complete border around summary section
var summaryRange = workSheet["A12:L12"];
summaryRange.Style.TopBorder.Type = BorderType.Double;
summaryRange.Style.BottomBorder.Type = BorderType.Double;
summaryRange.Style.LeftBorder.Type = BorderType.Thin;
summaryRange.Style.RightBorder.Type = BorderType.Thin;
summaryRange.Style.SetBorderColor("#0070C0"); // Blue borders
using IronXL;
using IronXl.Styles;

// Create header border - thick bottom line to separate from data
workSheet["A1:L1"].Style.TopBorder.SetColor("#000000");
workSheet["A1:L1"].Style.TopBorder.Type = BorderType.Thick;
workSheet["A1:L1"].Style.BottomBorder.SetColor("#000000");
workSheet["A1:L1"].Style.BottomBorder.Type = BorderType.Thick;

// Add right border to last column
workSheet["L2:L11"].Style.RightBorder.SetColor("#000000");
workSheet["L2:L11"].Style.RightBorder.Type = BorderType.Medium;

// Create bottom border for data area
workSheet["A11:L11"].Style.BottomBorder.SetColor("#000000");
workSheet["A11:L11"].Style.BottomBorder.Type = BorderType.Medium;

// Apply complete border around summary section
var summaryRange = workSheet["A12:L12"];
summaryRange.Style.TopBorder.Type = BorderType.Double;
summaryRange.Style.BottomBorder.Type = BorderType.Double;
summaryRange.Style.LeftBorder.Type = BorderType.Thin;
summaryRange.Style.RightBorder.Type = BorderType.Thin;
summaryRange.Style.SetBorderColor("#0070C0"); // Blue borders
$vbLabelText   $csharpLabel

IronXLは様々な枠線のタイプ(薄い、中くらい、太い、ダブル、点線、破線)をサポートしています。 各枠線の側面は独立してスタイリングできます。


How Do I Use Excel Formulas in C#?

IronXLは自動計算を備えた強力な数式のサポートを提供します:

// Use built-in aggregation functions for ranges
decimal sum = workSheet["A2:A11"].Sum();
decimal avg = workSheet["B2:B11"].Avg();
decimal max = workSheet["C2:C11"].Max();
decimal min = workSheet["D2:D11"].Min();

// Assign calculated values to cells
workSheet["A12"].Value = sum;
workSheet["B12"].Value = avg;
workSheet["C12"].Value = max;
workSheet["D12"].Value = min;

// Or use Excel formulas directly
workSheet["A12"].Formula = "=SUM(A2:A11)";
workSheet["B12"].Formula = "=AVERAGE(B2:B11)";
workSheet["C12"].Formula = "=MAX(C2:C11)";
workSheet["D12"].Formula = "=MIN(D2:D11)";

// Complex formulas with multiple functions
workSheet["E12"].Formula = "=IF(SUM(E2:E11)>50000,\"Over Budget\",\"On Track\")";
workSheet["F12"].Formula = "=SUMIF(F2:F11,\">5000\")";

// Percentage calculations
workSheet["G12"].Formula = "=G11/SUM(G2:G11)*100";
workSheet["G12"].FormatString = "0.00%";

// Ensure all formulas calculate
workSheet.EvaluateAll();
// Use built-in aggregation functions for ranges
decimal sum = workSheet["A2:A11"].Sum();
decimal avg = workSheet["B2:B11"].Avg();
decimal max = workSheet["C2:C11"].Max();
decimal min = workSheet["D2:D11"].Min();

// Assign calculated values to cells
workSheet["A12"].Value = sum;
workSheet["B12"].Value = avg;
workSheet["C12"].Value = max;
workSheet["D12"].Value = min;

// Or use Excel formulas directly
workSheet["A12"].Formula = "=SUM(A2:A11)";
workSheet["B12"].Formula = "=AVERAGE(B2:B11)";
workSheet["C12"].Formula = "=MAX(C2:C11)";
workSheet["D12"].Formula = "=MIN(D2:D11)";

// Complex formulas with multiple functions
workSheet["E12"].Formula = "=IF(SUM(E2:E11)>50000,\"Over Budget\",\"On Track\")";
workSheet["F12"].Formula = "=SUMIF(F2:F11,\">5000\")";

// Percentage calculations
workSheet["G12"].Formula = "=G11/SUM(G2:G11)*100";
workSheet["G12"].FormatString = "0.00%";

// Ensure all formulas calculate
workSheet.EvaluateAll();
$vbLabelText   $csharpLabel

Range クラスは、素早い計算のために Sum()Avg()Max()Min() などのメソッドを提供します。 より複雑なシナリオの場合は、 Formula プロパティを使用して Excel の数式を直接設定します。

{t:(範囲を操作するときは、生の数式文字列よりも IronXL の組み込みの .Sum().Avg().Max()、および .Min() メソッドを優先してください。これらは型安全であり、数式の構文エラーを回避します。)}


ワークシートと印刷のプロパティを設定するにはどうすればよいですか?

個別のワークシートを保護し、行と列を固定し、印刷フォーマットオプションを設定するためにIronXLを使用します。

ワークシートのプロパティを構成するにはどうすればよいでしょうか?

ワークシートを保護し、表示オプションを制御します:

// Protect worksheet with password to prevent unauthorized changes
workSheet.ProtectSheet("SecurePassword123");

// Freeze panes to keep headers visible while scrolling
workSheet.CreateFreezePane(0, 1); // Freeze first row
// workSheet.CreateFreezePane(1, 1); // Freeze first row and column

// Set worksheet visibility options
workSheet.ViewState = WorkSheetViewState.Visible; // or Hidden, VeryHidden

// Configure gridlines and headers
workSheet.ShowGridLines = true;
workSheet.ShowRowColHeaders = true;

// Set zoom level for better viewing
workSheet.Zoom = 85; // 85% zoom
// Protect worksheet with password to prevent unauthorized changes
workSheet.ProtectSheet("SecurePassword123");

// Freeze panes to keep headers visible while scrolling
workSheet.CreateFreezePane(0, 1); // Freeze first row
// workSheet.CreateFreezePane(1, 1); // Freeze first row and column

// Set worksheet visibility options
workSheet.ViewState = WorkSheetViewState.Visible; // or Hidden, VeryHidden

// Configure gridlines and headers
workSheet.ShowGridLines = true;
workSheet.ShowRowColHeaders = true;

// Set zoom level for better viewing
workSheet.Zoom = 85; // 85% zoom
$vbLabelText   $csharpLabel

ワークシートの保護は誤った変更を防止し、ウィンドウ枠の固定はスクロール中に重要な行や列を表示し続けます。

月間予算データを含む固定ヘッダー行を表示する Excel スプレッドシート

**図7** –*固定されたヘッダー行はスクロールしても表示されたまま*

保護されたワークシートを変更するためにパスワードを要求する Excel 保護ダイアログ

**図8** –*パスワード保護により不正な編集を防止*

ページと印刷の設定を構成するにはどうすればよいですか?

IronXLのを通じてプロフェッショナルな印刷オプションを設定します:

using IronXl.Printing;

// Define print area to exclude empty cells
workSheet.SetPrintArea("A1:L12");

// Configure page orientation for wide data
workSheet.PrintSetup.PrintOrientation = PrintOrientation.Landscape;

// Set paper size for standard printing
workSheet.PrintSetup.PaperSize = PaperSize.A4;

// Adjust margins for better layout (in inches)
workSheet.PrintSetup.LeftMargin = 0.5;
workSheet.PrintSetup.RightMargin = 0.5;
workSheet.PrintSetup.TopMargin = 0.75;
workSheet.PrintSetup.BottomMargin = 0.75;

// Configure header and footer
workSheet.PrintSetup.HeaderMargin = 0.3;
workSheet.PrintSetup.FooterMargin = 0.3;

// Scale to fit on one page
workSheet.PrintSetup.FitToPage = true;
workSheet.PrintSetup.FitToHeight = 1;
workSheet.PrintSetup.FitToWidth = 1;

// Add print headers/footers
workSheet.Header.Center = "Monthly Budget Report";
workSheet.Footer.Left = DateTime.Now.ToShortDateString();
workSheet.Footer.Right = "Page &P of &N"; // Page numbering
using IronXl.Printing;

// Define print area to exclude empty cells
workSheet.SetPrintArea("A1:L12");

// Configure page orientation for wide data
workSheet.PrintSetup.PrintOrientation = PrintOrientation.Landscape;

// Set paper size for standard printing
workSheet.PrintSetup.PaperSize = PaperSize.A4;

// Adjust margins for better layout (in inches)
workSheet.PrintSetup.LeftMargin = 0.5;
workSheet.PrintSetup.RightMargin = 0.5;
workSheet.PrintSetup.TopMargin = 0.75;
workSheet.PrintSetup.BottomMargin = 0.75;

// Configure header and footer
workSheet.PrintSetup.HeaderMargin = 0.3;
workSheet.PrintSetup.FooterMargin = 0.3;

// Scale to fit on one page
workSheet.PrintSetup.FitToPage = true;
workSheet.PrintSetup.FitToHeight = 1;
workSheet.PrintSetup.FitToWidth = 1;

// Add print headers/footers
workSheet.Header.Center = "Monthly Budget Report";
workSheet.Footer.Left = DateTime.Now.ToShortDateString();
workSheet.Footer.Right = "Page &P of &N"; // Page numbering
$vbLabelText   $csharpLabel

PrintSetup クラスは、 Excel の印刷設定に一致する包括的な印刷構成オプションを提供します。

横向きと A4 用紙サイズの設定を示す Excel の印刷プレビュー

**図9** –*横向き印刷とカスタム余白の印刷プレビュー*


Excel ブックを保存するにはどうすればよいですか?

ワークブックを様々なフォーマットで保存します:

// Save as XLSX (recommended for modern Excel)
workBook.SaveAs("Budget.xlsx");

// Save as XLS for legacy compatibility
workBook.SaveAs("Budget.xls");

// Save as CSV for data exchange
workBook.SaveAsCsv("Budget.csv");

// Save as JSON for web applications
workBook.SaveAsJson("Budget.json");

// Save to stream for web downloads or cloud storage
using (var stream = new MemoryStream())
{
    workBook.SaveAs(stream);
    byte[] excelData = stream.ToArray();
    // Send to client or save to cloud
}

// Save with specific encoding for international characters
workBook.SaveAsCsv("Budget_UTF8.csv", System.Text.Encoding.UTF8);
// Save as XLSX (recommended for modern Excel)
workBook.SaveAs("Budget.xlsx");

// Save as XLS for legacy compatibility
workBook.SaveAs("Budget.xls");

// Save as CSV for data exchange
workBook.SaveAsCsv("Budget.csv");

// Save as JSON for web applications
workBook.SaveAsJson("Budget.json");

// Save to stream for web downloads or cloud storage
using (var stream = new MemoryStream())
{
    workBook.SaveAs(stream);
    byte[] excelData = stream.ToArray();
    // Send to client or save to cloud
}

// Save with specific encoding for international characters
workBook.SaveAsCsv("Budget_UTF8.csv", System.Text.Encoding.UTF8);
$vbLabelText   $csharpLabel

IronXLはXLSX、XLS、CSV、TSV、JSONを含む複数のエクスポートフォーマットをサポートします。 SaveAs メソッドは、ファイル拡張子から形式を自動的に決定します。

  • XLSX / XLS : 書式設定、数式、複数のシートを含む完全な Excel 形式
  • CSV : データ交換用のプレーンテキスト - ファイルごとに1シートをエクスポートします
  • JSON :Web APIとデータパイプラインの構造化された出力 -ストリーム: メモリ内出力用 - ウェブダウンロードやクラウドストレージに便利

まとめ

このチュートリアルでは、 IronXLを使用して、Microsoft Office に依存せずに C# で Excel ファイルを作成する方法を説明しました。 ワークブック作成、セル操作、フォーマット設定、数式使用、および様々な保存オプションを含む重要なExcel操作を学びました。 IronXL の直感的な API により、.NET 開発者はExcel の自動化を簡単に実行できます。

セルの結合、およびチャートの作成など、より高度な機能を探索してください。 IronXLを製品で使用する準備ができましたか? 無料トライアルを開始するか、ライセンスオプションを表示します。

次は何をしますか?

C# で Excel ファイルを作成できるようになったので、関連する IronXL 機能を調べてみましょう。

-既存の Excel ファイルの読み取りと編集


チュートリアル クイックアクセス

Visual Studioのロゴ.
### このチュートリアルをC#ソースコードとしてダウンロードする

Excel ファイルを作成するための完全な C# ソース コードは、Visual Studio プロジェクト ファイルとして入手できます。

ダウンロード
### このチュートリアルをGitHubで探索

このプロジェクトのソース コードは、GitHub で C# および VB.NET で入手できます。

このコードを使えば、わずか数分でExcelファイルの作成を始めることができます。プロジェクトはMicrosoft Visual Studioプロジェクトとして保存されますが、どの.NET IDEでも互換性があります。

GitHub で C# で Excel ファイルを作成する
GitHubロゴ.
API ドキュメンテーション アイコン
### IronXL APIリファレンスを読む

IronXL の API リファレンスを調べて、.NET での包括的な Excel 操作に必要なすべての機能、名前空間、クラス、メソッド、プロパティの詳細を確認してください。

APIリファレンスを見る

よくある質問

Interopを使用せずにC#でExcelファイルを作成するにはどうすればよいですか?

IronXLを使用してInteropなしでExcelファイルを作成できます。これはシンプルなAPIを提供します:WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX)。この方法は、Microsoft Officeのインストールを必要とせず、任意 for .NETプラットフォームで動作します。

C#でのExcelファイル作成はどのプラットフォームをサポートしますか?

IronXLはExcelファイルの作成を.NET 10、.NET 9、.NET 8、.NET Core、.NET Framework 4.6.2+でサポートし、Windows、macOS、Linux、Docker、Azure、AWS環境で実行できます。

Excel生成用のC#ライブラリをどのようにインストールしますか?

Visual StudioのNuGetパッケージマネージャーからIronXLをインストールし、コマンドPM> Install-Package IronXl.Excelを使用するか、nuget.orgから直接ダウンロードしてください。

プログラムで新しいExcelワークブックをどのように作成しますか?

IronXLを使用してワークブックを作成し、WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX)を使用してからworkbook.CreateWorkSheet("SheetName")でワークシートを追加します。

C#を使用してExcelワークシートのセル値をどのように設定しますか?

IronXLを使用して直感的な構文でセル値を設定します:worksheet["A1"].Value = "Hello World"または範囲を設定します:worksheet["A1:A10"].Value = 100

プログラムでExcelのセルに書式を適用できますか?

はい、IronXLは背景色(cell.Style.SetBackgroundColor("#FF0000"))、罫線、フォント、数字の書式を含む包括的な書式設定をサポートします。

C#でExcelの数式をどのように使用しますか?

IronXLのFormulaプロパティを使用して数式を適用します:worksheet["A1"].Formula = "=SUM(B1:B10)"、またはrange.Sum()range.Avg()のような組み込みメソッドを使用します。

パスワードでExcelワークシートをどのように保護しますか?

無許可の変更を防ぐために、worksheet.ProtectSheet("YourPassword")を使用してIronXLのワークシートを保護します。

Excelファイルの印刷設定を構成するにはどうすればよいですか?

IronXLのPrintSetupを使用して印刷プロパティを設定します:worksheet.PrintSetup.PrintOrientation = PrintOrientation.Landscapeworksheet.SetPrintArea("A1:Z100").

Excelブックを異なる形式で保存するにはどうすればよいですか?

IronXLのSaveAsメソッドを使用してブックを保存します:workbook.SaveAs("file.xlsx")はXLSX形式のため、または他の形式のためにSaveAsCsv()SaveAsJson()を使用します。

データベースからデータを取得してExcelシートにどのように入力しますか?

IronXLを使用してデータベースからデータを取得し、worksheet["A1"].Value = dataFromDatabaseのようなメソッドを使用してセルに設定します。

C#を使用してExcelシートでウインドウ枠の固定をどのように実装しますか?

IronXLを使用してワークシートでウインドウ枠の固定を行います:worksheet.FreezePanes(1, 1)で最上行と最左列をロックし、ナビゲーションを容易にします。

Jacob Mellor、Ironチームの最高技術責任者(CTO)
最高技術責任者(CTO)

ジェイコブ・メラーはIron Softwareの最高技術責任者(CTO)であり、C# PDFテクノロジーを開拓する先見的なエンジニアです。Iron Softwareのコアコードベースを支えるオリジナル開発者として、彼は創業以来、会社の製品アーキテクチャを形成し、CEOのCameron Rimingtonとともに、会社をNASA、Tesla、および世界的な政府機関にサービスを提供する50人以上の会社に変えました。1999年にロンドンで最初のソフトウェアビジネスを開業し、2005年に最初 for .NETコンポーネントを作成した後、Microsoftのエコシステム全体で複雑な問題を解決することを専門としました。

彼の主要なIronPDFとIron Suite .NETライブラリは、世界中で3000万以上のNuGetインストールを達成し、彼の基礎となるコードは世界中で使用されている開発者ツールに力を与え続けています。25年の商業経験と41年のコーディングの専門知識を持つJacobは、次世代の技術リーダーを指導しながら、エンタープライズグレードのC#、Java、Python PDFテクノロジーにおけるイノベーションの推進に注力しています。

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/ready_to_started_202509.php
Line: 12
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 489
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Tutorials.php
Line: 29
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/ready_to_started_202509.php
Line: 19
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 489
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Tutorials.php
Line: 29
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

準備はできましたか?
Nuget ダウンロード 1,890,100 | バージョン: 2026.3 リリース

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/still_scrolling_202512.php
Line: 17
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 71
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/tutorials/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Tutorials.php
Line: 29
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/still_scrolling_202512.php
Line: 24
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 71
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/tutorials/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Tutorials.php
Line: 29
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

Still Scrolling Icon

まだスクロールしていますか?

すぐに証拠が欲しいですか? PM > Install-Package IronXl.Excel
サンプルを実行する あなたのデータがスプレッドシートになるのを見る。