撰寫 Excel .NET 函數
許多C#應用程序項目要求我們以程式化的方式更新文件並在Excel試算表中寫入新數據。 Excel .NET 功能有時候可能複雜,但使用 IronXL 庫,這項任務變得相當簡單,並允許以任何格式處理 Excel 試算表。 不需要繁多的程式碼,只要存取特定的單元格並分配自訂值即可。
開始使用IronXL
立即在您的專案中使用IronXL,並享受免費試用。
撰寫 Excel .NET 說明
訪問 Excel 文件
讓我們首先訪問我們想要寫入數據的Excel文件。 讓我們在我們的專案中打開 Excel 檔案,然後使用以下程式碼打開其特定的 WorkSheet。
: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 文件,如上例所示。
強制指定確切值
當設定 Value 屬性時,IronXL 會嘗試將其轉換為相應的值類型。 有時候,這種評估是不受歡迎的,因為用戶希望強制將確切的值賦予單元格,而不是轉換後的值。 要做到這一點,需要將值賦予為字符串。 在 Excel 中,可以通過在單元格值前放置一個撇號來完成這個操作。 在 IronXL 中,只需使用StringValue 代替Value 即可達成相同效果。
: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")
此代碼將把 new value
從 B2
寫入到 B9
(按行範圍)以及從 C3
寫入到 C7
(按列範圍),位於 Excel 文件 sample.xlsx
的工作表 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
上看到程式碼的結果:
替換 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")
上述函數將在整個 Excel 工作表中寫入new value
來覆蓋old 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")
上面的程式碼將會在指定的欄位索引中,用new value
替換old 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")
這將在指定範圍內的單元格中將新值
覆蓋在舊值
上方。
讓我們來看看如何使用上述所有功能在 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 應用程式及更多資訊,請參考我們完整的教學,了解如何開啟和撰寫 C# Excel 檔案。