使用 IronXL 以 C# 編寫 Excel .NET 函式
使用 IronXL 透過 C# 寫入 Excel 資料,方法包括存取工作表、使用簡單的方括號語法設定儲存格值,以及儲存變更。 此函式庫支援透過程式化方式寫入特定儲存格或範圍,並替換數值,且無需撰寫複雜的程式碼。
C# 應用程式經常需要透過程式化方式更新檔案,並將新資料寫入 Excel 試算表中。 Excel 的 .NET 功能有時可能較為複雜,但使用 IronXL 程式庫,這項任務便變得簡單明瞭,並能處理任何格式的 Excel 試算表。 直接存取特定儲存格,並以最少的程式碼賦予自訂值。 無論您是建立新的試算表,還是編輯現有的 Excel 檔案,IronXL 都能提供直覺的方法,滿足您所有的 Excel 自動化需求。
快速入門:將值寫入特定儲存格
此範例展示如何使用 IronXL 將值寫入單一儲存格,並僅需幾行程式碼即可儲存 Excel 檔案。
撰寫 Excel .NET 使用說明
- 下載 Excel .NET 函式庫
- 在特定儲存格中輸入數值
- 在多個儲存格中輸入靜態值
- 在儲存格範圍內寫入動態值
- 替換特定列、列、範圍等位置的儲存格值
如何存取 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 using IronXL 中開啟,您可以利用它將任何類型的資料寫入 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"
以下是一個範例,展示如何在您的 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 檔案的任何儲存格位址中輸入數值。若需更進階的格式設定選項,例如設定儲存格字型與大小,或套用背景顏色與圖案,IronXL 提供了全面的樣式設定功能。
注意:請勿忘記在工作表中輸入新值後儲存 Excel 檔案,如上例所示。
為什麼我要強制賦予精確值?
在設定 Value 屬性時,IronXL 會嘗試將其轉換為對應的值類型。 有時,這種評估並非所願,因為您希望在不進行轉換的情況下,強制將精確值賦予該儲存格。 為此,請將該值設定為字串。 在 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"
如何將靜態值寫入範圍中?
您可以按照以下方式,在多個儲存格(稱為範圍)中輸入新值:
// 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"
如此一來,您便指定了 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")
此程式碼會在 B 欄中,將 new value 從 B2 寫入至 B9,並將 C3 寫入至 C7。 它使用靜態值來填充 Excel 儲存格。
如何在範圍內寫入動態值?
您也可以像下方所示,將動態值加入範圍中。 這在需要從資料庫載入資料或生成報表時特別有用。 您亦可考慮透過 DataSet 進行匯入與匯出,以執行更複雜的資料操作。
: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 列。 您可以在 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")
這會僅在指定的列索引處,將 new value 寫入 old 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 還提供了一種方法,可在指定範圍內將 new value 替換為 old 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")
若想進一步了解如何編寫 Excel .NET 應用程式等相關內容,請參閱我們關於如何使用 C# 開啟及寫入 Excel 檔案的完整教學。 若您需要處理不同檔案格式,我們的電子表格檔案類型轉換指南或許也能提供協助。
教學快速連結
常見問題
如何使用 C# 將值寫入 Excel 檔案中的特定儲存格?
using IronXL,您只需透過方括號表示法存取特定儲存格,並設定其 Value 屬性,即可對該儲存格進行寫入。例如:worksheet["A1"].Value = "Hello, IronXL!";接著使用 workbook.SaveAs("output.xlsx") 儲存工作簿。這種直觀的方法,讓您無需編寫複雜的 Excel 互通程式碼。
要透過程式碼將資料寫入 Excel 檔案,第一步該怎麼做?
第一步是使用 IronXL 的 WorkBook.Load() 方法載入您的 Excel 檔案,然後存取您想要寫入資料的特定工作表。IronXL 透過直覺的方法讓這一切變得簡單,讓您能夠開啟任何 Excel 格式,並立即開始操作儲存格和範圍。
我在 Excel 中能否一次將資料寫入多個儲存格?
是的,IronXL 支援高效地寫入多個儲存格。您可以個別將靜態值寫入多個特定儲存格,或使用儲存格範圍透過程式化方式將動態值寫入多個儲存格。此程式庫同時提供單一儲存格操作與批次資料寫入的方法。
如何在 Excel 試算表中替換現有的儲存格值?
IronXL 讓您只需存取儲存格並賦予新值,即可替換儲存格內容。您可以替換特定列、列或範圍內的值。當您為儲存格賦予新值時,IronXL程式庫會自動處理現有資料的覆寫作業。
支援哪些 Excel 檔案格式來寫入資料?
IronXL 支援寫入所有主要 Excel 檔案格式,包括 .xlsx、.xls、.xlsm 及 CSV 檔案。IronXL程式庫會自動處理特定格式的需求,讓您無需變更程式碼架構,即可處理任何格式的 Excel 試算表。
我需要安裝 Microsoft Excel 才能用 C# 寫入 Excel 檔案嗎?
不,IronXL 為獨立運作,無需 Microsoft Excel 或 Office Interop。它是一個獨立的 .NET 程式庫,可在任何系統上透過程式碼讀取、寫入及建立 Excel 檔案,因此非常適合用於伺服器應用程式以及未安裝 Excel 的環境。
將資料寫入 Excel 檔案後,該如何儲存變更?
將資料寫入儲存格後,請使用 IronXL 的 SaveAs() 方法儲存變更以建立新檔案,或使用 Save() 方法覆寫現有檔案。此程式庫可確保您所有的儲存格更新、格式設定及公式,皆能正確儲存於您指定的 Excel 檔案格式中。


