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

使用 IronXL 在 C# 中編寫 Excel .NET 函數

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

許多 C# 應用程式專案需要我們以程式設計方式更新檔案並在 Excel 電子表格中寫入新資料。 Excel .NET 的功能有時可能很複雜,但使用 IronXL 庫,這項任務就變得非常簡單,並且可以處理任何格式的 Excel 電子表格。 無需編寫大量程式碼,只需訪問特定單元格並自訂您指定的值即可。

快速入門:向指定儲存格寫入值

本範例展示如何使用 IronXL 輕鬆地將值寫入單一儲存格,只需幾行程式碼即可儲存 Excel 檔案——無需樣板程式碼或複雜操作即可上手。

Nuget Icon立即開始使用 NuGet 建立 PDF 檔案:

  1. 使用 NuGet 套件管理器安裝 IronXL

    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中打開,我們可以使用它向 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

這段程式碼會將new value寫入 Excel 檔案sample.xlsxSheet1工作表的A1儲存格。 同樣地,我們可以在 Excel 檔案的任何儲存格位址中插入值。

注意:在工作表中寫入新值後,不要忘記儲存 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

這樣,我們就指定了要寫入資料的儲存格範圍From "到Tonew 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

這段程式碼會將new valueB2寫入 Excel 檔案sample.xlsx工作表Sheet1中的C5 。 它使用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")
$vbLabelText   $csharpLabel

上述程式碼將動態值寫入 Excel 檔案sample.xlsxB列第27 。 我們可以在sample.xlsx中看到程式碼的運行結果。

1excel related to 在一定範圍內寫入動態值

取代 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

上述函數會將new value寫入整個 Excel 工作表,並覆寫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

替換指定列中的儲存格值

同樣地,如果我們想在特定列中用new value覆寫old 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 教程快速存取

常見問題解答

如何開始使用 .NET 撰寫 Excel 檔案?

要開始使用 IronXL,請下載函式庫,並將其包含在您的專案中。在您的 C# 程式碼中使用 using IronXL 來匯入函式庫。

如何將值寫入 Excel 工作表中的特定儲存格?

若要使用 IronXL 將值寫入特定的儲存格,請使用儲存格的位址存取該儲存格,例如 worksheet['A1'] 並使用 .Value 屬性指定值。

如何在 Excel 中為單元格範圍指定靜態值?

若要使用 IronXL 為一個範圍指定靜態值,請使用儲存格位址指定範圍,例如 worksheet['B2:C5'] 並將 .Value 屬性設定為您想要的靜態值。

我可以將動態值寫入 Excel 中的儲存格範圍嗎?

是的,使用 IronXL,您可以使用循環或自訂邏輯將動態值寫入範圍。例如,您可以遍歷儲存格位址,並根據您的需求指定動態值。

如何取代 Excel 工作表中的現有儲存格值?

使用 IronXL,您可以在工作表、行、列或指定範圍中使用 Replace() 方法,將「舊值」取代為「新值」。

使用 Value 和 StringValue 有何不同?

在 IronXL 中,.Value 屬性可能會將指定的值轉換為特定類型的格式,而 .StringValue 則會將值指定為字串,避免轉換。

如何開啟和存取 Excel 檔案中的特定工作表?

使用 IronXL 的 WorkBook.Load('path/to/your/excel-file.xlsx「) 載入檔案,以及 workbook.GetWorkSheet(」SheetName') 存取特定的工作表。

寫入新值後是否需要儲存 Excel 檔案?

是的,使用 IronXL 時,您必須在變更 Excel 檔案後,使用 workbook.SaveAs('filename.xlsx') 方法儲存 Excel 檔案,以持續您的變更。

如何在特定行中寫入新值以取代舊值?

使用 IronXL,使用 worksheet.Rows[index] 存取行,然後以新舊數值呼叫 Replace() 方法。

我可以取代特定欄位中的值嗎?

是的,使用 IronXL,使用 worksheet.Columns['A'] 存取欄位,並使用 Replace() 方法在該欄位中以新值取代舊值。

如何確保我的 C# 專案能與 Excel 檔案互動?

確保您的 C# 專案引用 IronXL 函式庫,方法是下載該函式庫,並將其加入專案的引用中。這有助於與 Excel 檔案互動。

在 .NET 中寫入 Excel 檔案時,有哪些常見問題?

常見的問題包括未正確引用 IronXL 函式庫、不正確的單元格位址格式,以及忘記儲存變更。確保正確的設定和語法。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。

準備好開始了嗎?
Nuget 下載 1,738,553 | Version: 2025.11 剛發表