如何使用 C# 在 .NET 中寫入 Excel 檔案

使用 IronXL 以 C# 編寫 Excel .NET 函式

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

使用 IronXL 透過 C# 寫入 Excel 資料,方法包括存取工作表、使用簡單的方括號語法設定儲存格值,以及儲存變更。 此函式庫支援透過程式化方式寫入特定儲存格或範圍,並替換數值,且無需撰寫複雜的程式碼。

C# 應用程式經常需要透過程式化方式更新檔案,並將新資料寫入 Excel 試算表中。 Excel 的 .NET 功能有時可能較為複雜,但使用 IronXL 程式庫,這項任務便變得簡單明瞭,並能處理任何格式的 Excel 試算表。 直接存取特定儲存格,並以最少的程式碼賦予自訂值。 無論您是建立新的試算表,還是編輯現有的 Excel 檔案,IronXL 都能提供直覺的方法,滿足您所有的 Excel 自動化需求。

快速入門:將值寫入特定儲存格

此範例展示如何使用 IronXL 將值寫入單一儲存格,並僅需幾行程式碼即可儲存 Excel 檔案。

  1. using NuGet 套件管理員安裝 https://www.nuget.org/packages/IronXL.Excel

    PM > Install-Package IronXL.Excel
  2. 請複製並執行此程式碼片段。

    worksheet["A1"].Value = "Hello, IronXL!";
    workbook.SaveAs("output.xlsx");
  3. 部署至您的生產環境進行測試

    立即透過免費試用,在您的專案中開始使用 IronXL

    arrow pointer

撰寫 Excel .NET 使用說明

  • 下載 Excel .NET 函式庫
  • 在特定儲存格中輸入數值
  • 在多個儲存格中輸入靜態值
  • 在儲存格範圍內寫入動態值
  • 替換特定列、列、範圍等位置的儲存格值
How To Work related to 使用 IronXL 以 C# 編寫 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")
$vbLabelText   $csharpLabel

執行上述操作將開啟指定的 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")
$vbLabelText   $csharpLabel

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"
$vbLabelText   $csharpLabel

以下是一個範例,展示如何在您的 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")
$vbLabelText   $csharpLabel

此程式碼會在 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"
$vbLabelText   $csharpLabel

如何將靜態值寫入範圍中?

您可以按照以下方式,在多個儲存格(稱為範圍)中輸入新值:

// 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"
$vbLabelText   $csharpLabel

如此一來,您便指定了 FromTo 之間的儲存格範圍,資料將寫入此範圍內。 此範圍內的所有儲存格中將填入 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")
$vbLabelText   $csharpLabel

此程式碼會在 B 欄中,將 new valueB2 寫入至 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")
$vbLabelText   $csharpLabel

上述程式碼將動態值寫入 Excel 檔案 sample.xlsx 中的 27 列。 您可以在 sample.xlsx 查看程式碼的執行結果。

電子試算表中顯示兩個標示範圍 B2:B7 和 D2:D7,內容分別填入 Value2 至 Value7

如何替換 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")
$vbLabelText   $csharpLabel

上述函式會在整個 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")
$vbLabelText   $csharpLabel

這會僅在指定的列索引處,將 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")
$vbLabelText   $csharpLabel

上述程式碼會寫入 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")
$vbLabelText   $csharpLabel

這會將 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")
$vbLabelText   $csharpLabel

若想進一步了解如何編寫 Excel .NET 應用程式等相關內容,請參閱我們關於如何使用 C# 開啟及寫入 Excel 檔案的完整教學。 若您需要處理不同檔案格式,我們的電子表格檔案類型轉換指南或許也能提供協助。


教學快速連結

閱讀 API 參考文件

請閱讀 IronXL 文件,其中包含該程式庫中所有可用函式、功能、命名空間、類別及枚舉的清單。

閱讀 API 參考文件
Documentation related to 教學快速連結

常見問題

如何使用 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 檔案格式中。

Curtis Chau
技術撰稿人

Curtis Chau 擁有卡爾頓大學(Carleton University)的電腦科學學士學位,專精於前端開發,並精通 Node.js、TypeScript、JavaScript 及 React。他熱衷於打造直觀且美觀的用戶介面,喜歡運用現代框架,並創建結構完善、視覺上吸引人的手冊。

除了開發工作之外,Curtis 對物聯網(IoT)抱有濃厚興趣,致力於探索整合硬體與軟體的創新方法。閒暇時,他喜歡玩遊戲和開發 Discord 機器人,將對科技的熱愛與創意相結合。

準備開始了嗎?
Nuget 下載 2,052,917 | 版本: 2026.6 just released
Still Scrolling Icon

還在捲動嗎?

想要快速證明? PM > Install-Package IronXL.Excel
執行範例 觀看您的資料變成試算表。