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
のワークシート Sheet1
の 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 範囲例をこちらでご覧ください。
以下の例を使用して、範囲を書く方法を実際に見てみましょう。
: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")
このコードは 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")
上記のコードは、Excelファイル「sample.xlsx」の列「B」および「D」の「2」から「7」までの範囲に動的な値を書き込みます。 コードの結果は 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ワークシート全体の「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")
指定された範囲内のセルについてのみ、new value
がold 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")
エクセル.NETアプリケーションの作成方法などの詳細については、完全チュートリアルをご覧ください。Excelファイルを開いて書き込む C#.