Excel .NET 関数を書く

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

多くのC#アプリケーションプロジェクトでは、ファイルを更新し、プログラム的にExcelスプレッドシートに新しいデータを書き込むことが求められます。 Excel .NETの機能は時々複雑な場合がありますが、IronXLライブラリを使用することで、この作業は非常にシンプルになり、任意の形式のExcelスプレッドシートを扱うことができます。 大量のコードを記述することなく、特定のセルと割り当てたカスタム値にアクセスできます。

IronXLで始めましょう

今日から無料トライアルでIronXLをあなたのプロジェクトで使い始めましょう。

最初のステップ:
green arrow pointer


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")
VB   C#

上記のコードは指定された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")
VB   C#

Excelワークシートは workSheetで開かれ、Excelファイルに任意の種類のデータを書き込むために使用できます。詳細については、Excelファイルを読み込む以下のリンクの例を通して、タイプと異なる方法でワークシートにアクセスすることができます。 注:プロジェクトにIronXLの参照を追加し、Using IronXLでライブラリをインポートすることを忘れないでください。


特定のセルに値を書き込む

Excelファイルに書き込む方法は数多くありますが、基本的なアプローチはExcel Cellを使用することです。 この目的のために、開いた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"
VB   C#

以下は、上記の関数を使用してC#プロジェクトでExcelセルに書き込む方法の例です。

: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")
VB   C#

このコードは、Excelファイル sample.xlsx のワークシート Sheet1A1 セルに new value を書き込みます。 同様に、Excelファイルの任意のセルアドレスに値を挿入することができます。 注意: 上記の例に示されているように、ワークシートに新しい値を書き込んだ後、Excelファイルを保存することを忘れないでください。

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

値プロパティを設定すると、IronXL はそれを対応する値の型に変換しようとします。 この評価は、ユーザーが変換された値ではなく正確な値をセルに強制的に割り当てたい場合には望ましくないことがあります。 この方法は、値を文字列として指定することです。 これは、Excelでセルの値の前にアポストロフィを置くことで行うことができます。 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"
VB   C#

範囲に静的値を書き込む

以下のように、範囲と呼ばれる複数のセルに新しい値を書き込むことができます:

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-assign-cell-range.cs
workSheet["From Cell Address:To Cell Address"].Value = "New Value";
workSheet("From Cell Address:To Cell Address").Value = "New Value"
VB   C#

このようにして、データが書き込まれるセル範囲を From から To まで指定します。 その後、この範囲内にあるすべてのセルに New Value が書き込まれます。 以下の内容を日本語に翻訳してください:

The understand more about

詳細について理解するためC# Excel 範囲例をこちらでご覧ください。

以下の例を使用して、範囲を書く方法を実際に見てみましょう。

: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")
VB   C#

このコードは B2 から B9 まで new value を書き込みます。(行ごとの範囲)C3からC7まで(列ごとの範囲)Excelファイルsample.xlsxのWorkSheet sheet1。 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")
VB   C#

上記のコードは、Excelファイル「sample.xlsx」の列「B」および「D」の「2」から「7」までの範囲に動的な値を書き込みます。 コードの結果は sample.xlsx で確認できます。

1excel related to 範囲内に動的な値を書く

エクセルセルの値を置き換える

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")
VB   C#

上記の関数は、Excelワークシート全体の「old value」を上書きして「new value」を書き込みます。

特定の行のセル値を置換

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

: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")
VB   C#

これは指定された行インデックスにおいて old valuenew value に上書きします。

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

同様に、特定の列内の old valuenew 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")
VB   C#

上記のコードは、指定された列インデックスでのみ、old valuenew valueに置き換えて書き込みます。 残りのWorkSheetは同じままです。

特定の範囲内のセルの値を置換する

IronXLでは、特定の範囲内で old valuenew 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")
VB   C#

指定された範囲内のセルについてのみ、new valueold 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")
VB   C#

エクセル.NETアプリケーションの作成方法などの詳細については、完全チュートリアルをご覧ください。Excelファイルを開いて書き込む C#.


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

APIリファレンスを読む

IronXLのドキュメントには、ライブラリで利用可能なすべての関数、機能、名前空間、クラス、および列挙型のリストが含まれています。

APIリファレンスを読む
Documentation related to チュートリアル クイック アクセス