C#によるNETでのExcelファイルへの書き込み方法

Write Excel .NET Functions

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

多くのC#アプリケーションプロジェクトでは、プログラムでExcelスプレッドシートにファイルを更新し、新しいデータを書き込む必要があります。 Excel .NET の機能は時には複雑ですが、IronXLライブラリを使用することで、この作業は非常に簡単で、任意のフォーマットでExcelスプレッドシートを操作することができます。 大量のコード行を必要とせず、指定されたセルと割り当てたカスタム値にアクセスするだけです。

クイックスタート: 特定のセルに値を書く

この例では、IronXLを使用して簡単に値を単一セルに書き込み、数行でExcelファイルを保存する方法を示しています—テンプレートや複雑さなしに始めましょう。

Nuget IconGet started making PDFs with NuGet now:

  1. Install IronXL with NuGet Package Manager

    PM > Install-Package IronXL.Excel

  2. Copy and run this code snippet.

    worksheet["A1"].Value = "Hello, IronXL!";
    workbook.SaveAs("output.xlsx");
  3. Deploy to test on your live environment

    Start using IronXL in your project today with a free trial
    arrow pointer
class="learnn-how-section">
class="row">
class="col-sm-6">

Excel .NET の手順を書く

  • Excel .NET のライブラリをダウンロードする
  • 特定のセルに値を書く
  • 複数のセルに静的値を書く
  • セル範囲に動的値を書く
  • 特定の行、列、範囲、その他でセル値を置き換える
class="col-sm-6">
class="download-card"> How To Work related to Write Excel .NET Functions

Excelファイルへのアクセス

まず、データを書き込みたいExcelファイルにアクセスすることから始めましょう。 プロジェクト内でExcelファイルを開き、次に以下のコードを使用して特定のワークシートを開きます。

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-load-file.cs
// Load Excel file in the project
WorkBook workBook = WorkBook.Load("path");
' Load Excel file in the project
Dim workBook As WorkBook = WorkBook.Load("path")
$vbLabelText   $csharpLabel

上記により、指定されたExcelファイルが開かれます。次にワークシートにアクセスします。

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-get-sheet.cs
// Open Excel WorkSheet
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");
' Open Excel WorkSheet
Dim workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")
$vbLabelText   $csharpLabel

Excelワークシートはworksheetで開かれ、このExcelファイルに任意のタイプのデータを書き込むことができます。 Excelファイルの読み込みや、リンクの例を通じて異なる方法でワークシートにアクセスする方法をもっと学ぶことができます。

注意: プロジェクトにIronXLの参照を追加し、ライブラリをusing IronXLを使用してインポートするのを忘れずに。


特定のセルに値を書く

Excelファイルに書き込む際には、多くの方法がありますが、基本的なアプローチはExcelCellを使うことです。 この目的のために、開かれたExcelワークシートの任意のセルにアクセスし、以下のようにしてそこに値を書き込むことができます。

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-assign-cell.cs
workSheet["Cell Address"].Value="Assign the Value";
workSheet("Cell Address").Value="Assign the Value"
$vbLabelText   $csharpLabel

以下は、私たちのC#プロジェクトでExcel Cellに書き込むための上記関数を使用する方法の例です。

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-assign-cell-full.cs
using IronXL;

// Load Excel file
WorkBook workBook = WorkBook.Load("sample.xlsx");

// Open WorkSheet of sample.xlsx
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");

// Access A1 cell and write the value
workSheet["A1"].Value = "new value";

// Save changes
workBook.SaveAs("sample.xlsx");
Imports IronXL

' Load Excel file
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")

' Open WorkSheet of sample.xlsx
Private workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")

' Access A1 cell and write the value
Private workSheet("A1").Value = "new value"

' Save changes
workBook.SaveAs("sample.xlsx")
$vbLabelText   $csharpLabel

このコードは、Excelファイルsample.xlsxのワークシートSheet1のセルA1new valueを書き込みます。 同様に、Excelファイルの任意のセルアドレスに値を挿入することができます。

注意: 上記の例のように、ワークシートに新しい値を書き込んだ後、Excelファイルを保存するのを忘れないでください。

正確な値を強制的に割り当てる

Valueプロパティを設定する際、IronXLはそれを対応する値タイプに変換しようとします。 時にはこの評価は望ましくなく、ユーザーが変換せずに正確な値をセルに強制的に割り当てたい場合があります。 これを行うには、値を文字列として割り当てます。 IronXLでは、同じ効果を達成するためにValueの代わりにStringValueを使用します。

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-assign-stringvalue.cs
// Assign value as string
workSheet["A1"].StringValue = "4402-12";
' Assign value as string
workSheet("A1").StringValue = "4402-12"
$vbLabelText   $csharpLabel

範囲に静的な値を書く

複数のセル、つまり範囲に新しい値を書くことができます、以下の通りです:

// Assign a static value to a range of cells
worksheet["B2:C5"].Value = "static value";
// Assign a static value to a range of cells
worksheet["B2:C5"].Value = "static value";
' Assign a static value to a range of cells
worksheet("B2:C5").Value = "static value"
$vbLabelText   $csharpLabel

この方法では、データが書き込まれるセルの範囲をFromからToへと指定します。 new valueは、この範囲に含まれるすべてのセルに書き込まれます。 C# Excel Rangeについてもっと理解するには、こちらの例をチェックしてください。

以下の例を使用して、範囲を書き込むアクションを見てみましょう。

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-assign-cell-range-full.cs
using IronXL;

// Load Excel file
WorkBook workBook = WorkBook.Load("sample.xlsx");

// Open WorkSheet of sample.xlsx
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");

// Specify range row wise and write new value
workSheet["B2:B9"].Value = "new value";

// Specify range column wise and write new value
workSheet["C3:C7"].Value = "new value";

// Save changes
workBook.SaveAs("sample.xlsx");
Imports IronXL

' Load Excel file
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")

' Open WorkSheet of sample.xlsx
Private workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")

' Specify range row wise and write new value
Private workSheet("B2:B9").Value = "new value"

' Specify range column wise and write new value
Private workSheet("C3:C7").Value = "new value"

' Save changes
workBook.SaveAs("sample.xlsx")
$vbLabelText   $csharpLabel

このコードは、Excelファイルsample.xlsxのワークシートSheet1B2からC5までnew valueを書き込みます。 Excelセルに静的な値を使用します。


範囲に動的な値を書く

以下のように、範囲に動的な値を追加することもできます。

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-assign-dynamic-value.cs
using IronXL;

// Load Excel file
WorkBook workBook = WorkBook.Load("sample.xlsx");

// Open WorkSheet of sample.xlsx
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");

// Specify range in which we want to write the values
for (int i = 2; i <= 7; i++)
{
    // Write the Dynamic value in one row
    workSheet["B" + i].Value = "Value" + i;

    // Write the Dynamic value in another row
    workSheet["D" + i].Value = "Value" + i;
}

// Save changes
workBook.SaveAs("sample.xlsx");
Imports IronXL

' Load Excel file
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")

' Open WorkSheet of sample.xlsx
Private workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")

' Specify range in which we want to write the values
For i As Integer = 2 To 7
	' Write the Dynamic value in one row
	workSheet("B" & i).Value = "Value" & i

	' Write the Dynamic value in another row
	workSheet("D" & i).Value = "Value" & i
Next i

' Save changes
workBook.SaveAs("sample.xlsx")
$vbLabelText   $csharpLabel

上記のコードは、Excelファイルsample.xlsxの列B2から7に動的な値を書き込みます。 sample.xlsxでのコードの結果を見ることができます。

class="center-image-wrapper"> 1excel related to 範囲に動的な値を書く

Excelセル値を置き換える

IronXLを使用すると、Replace()関数を使って、古い値を置き換える新しい値を書き込むことが簡単にできます:

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-replace.cs
workSheet.Replace("old value", "new value");
workSheet.Replace("old value", "new value")
$vbLabelText   $csharpLabel

上記の関数は、新しいnew valueを書き込み、古いold valueを完全なExcelワークシートに上書きします。

特定の行でセル値を置き換える

特定の行にのみ新しい値を書き込みたい場合は、以下のように行います:

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-replace-row.cs
workSheet.Rows[RowIndex].Replace("old value", "new value");
workSheet.Rows(RowIndex).Replace("old value", "new value")
$vbLabelText   $csharpLabel

これは、指定された行インデックスのみにnew valueold valueの上に書き込むことになります。

特定の列でセル値を置き換える

同様に、特定の列内でold valueの上にnew valueを書き込む場合は、以下のように行います:

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-replace-column.cs
workSheet.Columns[ColumnIndex].Replace("old value", "new Value");
workSheet.Columns(ColumnIndex).Replace("old value", "new Value")
$vbLabelText   $csharpLabel

上記のコードは、指定された列インデックスに限定して、old valueを置き換えるnew valueを書き込みます。 ワークシートの残りは同じままです。

特定の範囲でセル値を置き換える

IronXLは、指定された範囲内のみでold valueを置き換えるnew valueを書く方法も提供します。

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-replace-range.cs
workSheet["From Cell Address : To Cell Address"].Replace("old value", "new value");
workSheet("From Cell Address : To Cell Address").Replace("old value", "new value")
$vbLabelText   $csharpLabel

これは、指定された範囲に含まれるセルだけにold valueの上にnew valueを書き込みます。

上記のすべての関数を使って、Excelワークシートで古い値を置き換えるために新しい値を書く方法の例を見てみましょう。

すべての関数の例

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-replace-full.cs
using IronXL;

WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");

// Write new above old in complete WorkSheet
workSheet.Replace("old", "new");

// Write new above old just in row no 6 of WorkSheet
workSheet.Rows[5].Replace("old", "new");

// Write new above old just in column no 5 of WorkSheet
workSheet.Columns[4].Replace("old", "new");

// Write new above old just from A5 to H5 of WorkSheet
workSheet["A5:H5"].Replace("old", "new");

workBook.SaveAs("sample.xlsx");
Imports IronXL

Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
Private workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")

' Write new above old in complete WorkSheet
workSheet.Replace("old", "new")

' Write new above old just in row no 6 of WorkSheet
workSheet.Rows(5).Replace("old", "new")

' Write new above old just in column no 5 of WorkSheet
workSheet.Columns(4).Replace("old", "new")

' Write new above old just from A5 to H5 of WorkSheet
workSheet("A5:H5").Replace("old", "new")

workBook.SaveAs("sample.xlsx")
$vbLabelText   $csharpLabel

Excel .NET アプリケーションの書き方についての詳細や、C#でのExcelファイルのオープンと書き込みについての完全なチュートリアルをチェックしてください。


class="tutorial-segment-title">チュートリアルクイックアクセス

class="tutorial-section">
class="row">
class="col-sm-8">

APIリファレンスを読む

ライブラリ内で使用可能なすべての関数、機能、名前空間、クラス、列挙型を含むIronXLドキュメントをお読みください。

APIリファレンスを読む
class="col-sm-4">
class="tutorial-image"> Documentation related to class=チュートリアルクイックアクセス" class="img-responsive add-shadow img-responsive img-popup" src="/img/svgs/documentation.svg" loading="lazy">

よくある質問

どうすれば .NET でExcelファイルの記述を始められますか?

IronXLを始めるには、ライブラリをダウンロードしてプロジェクトに追加してください。C#コードで using IronXL を使用してライブラリをインポートします。

Excelワークシートの特定のセルに値を書き込むにはどうすれば良いですか?

IronXLを使用して特定のセルに値を書くには、worksheet['A1'] のようにしてセルにアクセスし、.Value プロパティを使用して値を割り当てます。

Excelでセルの範囲に静的な値を割り当てるにはどうすれば良いですか?

IronXLを使用して範囲に静的な値を割り当てるには、例えば worksheet['B2:C5'] のようにセルアドレスを指定し、.Value プロパティを希望する静的値に設定します。

Excelでセルの範囲に動的な値を書くことはできますか?

はい、IronXLを使用すると、ループやカスタムロジックを使用して範囲に動的な値を書き込むことができます。例えば、セルアドレスを繰り返して、要件に基づいて動的な値を割り当てることができます。

Excelワークシートの既存のセル値をどのように置換できますか?

IronXLを使用することで、ワークシート、行、列、または指定された範囲で、'old value' を 'new value' で置き換えるために Replace() メソッドを使用できます。

ValueとStringValueを使用することの違いは何ですか?

IronXL では、.Value プロパティは指定された値を型固有の形式に変換する場合があり、.StringValue は値を文字列として割り当て、変換を避けます。

Excelファイルで特定のワークシートを開きアクセスするにはどうすれば良いですか?

IronXLの WorkBook.Load('path/to/your/excel-file.xlsx') を使用してファイルを読み込み、workbook.GetWorkSheet('SheetName') を使用して特定のワークシートにアクセスします。

新しい値を書き込んだ後、Excelファイルを保存する必要がありますか?

はい、IronXLを使用する場合、workbook.SaveAs('filename.xlsx') メソッドを使用して変更を永続化することで、変更後にExcelファイルを保存する必要があります。

特定の行の古い値を置き換える新しい値を書き込むにはどうすればよいですか?

IronXLを使用して行にアクセスし worksheet.Rows[index] を使用し、その後、古い値と新しい値で Replace() メソッドを呼び出します。

特定の列で値を置き換えることはできますか?

はい、IronXLを使用して worksheet.Columns['A'] で列にアクセスし、その列の古い値を新しい値に置き換えるために Replace() メソッドを使用します。

C#プロジェクトがExcelファイルとやりとりできることを保証するにはどうすれば良いですか?

IronXLライブラリをダウンロードしてプロジェクトの参照に追加することで、C#プロジェクトがExcelファイルとのインタラクションを容易にすることができます。

.NETでExcelファイルへの書き込み時に多くの一般的な問題は何ですか?

一般的な問題には、IronXLライブラリの参照が正しくない、セルアドレス形式が正しくない、変更の保存の忘れなどがあります。適切な設定と構文を確認してください。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はいいですか?
Nuget ダウンロード 1,686,155 | バージョン: 2025.11 ただ今リリースされました