Excel .NET 関数を書く
多くのC#アプリケーションプロジェクトでは、ファイルを更新し、プログラム的にExcelスプレッドシートに新しいデータを書き込むことが求められます。 Excel .NETの機能は時々複雑な場合がありますが、IronXLライブラリを使用することで、この作業は非常にシンプルになり、任意の形式のExcelスプレッドシートを扱うことができます。 大量のコードを記述することなく、特定のセルと割り当てたカスタム値にアクセスできます。
IronXLで始めましょう
今日から無料トライアルでIronXLをあなたのプロジェクトで使い始めましょう。
「.NETでExcelファイルを作成する方法」
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")
上記のコードは指定された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")
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"
以下は、上記の関数を使用して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")
このコードは、Excelファイルsample.xlsx
内のWorkSheetSheet1
のA1
セルに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"
範囲に静的値を書き込む
以下のように、範囲と呼ばれる複数のセルに新しい値を書き込むことができます:
: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"
このようにして、データが書き込まれるセルの範囲を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")
このコードは、Excelファイルsample.xlsx
のワークシートsheet1
のB2
からB9
まで(行方向範囲)およびC3
からC7
まで(列方向範囲)に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")
上記のコードは、Excelファイルsample.xlsx
の2
から7
の範囲でB
列およびD
列に動的な値を書き込みます。 コードの結果はsample.xlsx
で確認できます:
エクセルセルの値を置き換える
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")
上記の関数は、完全なExcel WorkSheet内の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")
これは、指定された行インデックスでのみold value
の上にnew 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")
上記のコードは、指定された列のインデックスにのみ、old value
をnew value
に置き換えて書き込むものです。 残りのWorkSheetは同じままです。
特定の範囲内のセルの値を置換する
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")
これは、指定された範囲にあるセルにのみ、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")
Excel .NET アプリケーションの書き方についての詳細情報やその他の情報については、Open and Write Excel Files C# の完全なチュートリアルをチェックしてください。