如何使用 C# 在 .NET 中寫入 Excel 文件

Write Excel .NET Functions

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

許多 C# 應用程序專案需要我們以程式化方式更新文件並在 Excel 試算表中寫入新數據。 Excel .NET 功能有時可能會很複雜,但使用 IronXL 庫,這個任務相當簡單,並允許以任何格式處理 Excel 試算表。 無需大量程式碼,只需訪問特定單元格和您分配的自定義值。

作為標題:2(快速入門:向特定單元格寫入值)

此範例展示了如何輕鬆地使用 IronXL 在單獨的單元格中寫入值,並在短短幾行程式碼中保存 Excel 文件——無需樣板或複雜性即可開始。

Nuget IconGet started making PDFs with NuGet now:

  1. Install IronXL with NuGet Package Manager

    PM > Install-Package IronXL.Excel

  2. Copy and run this code snippet.

    worksheet["A1"].Value = "Hello, IronXL!";
    workbook.SaveAs("output.xlsx");
  3. Deploy to test on your live environment

    Start using IronXL in your project today with a free trial
    arrow pointer
class="learnn-how-section">
class="row">
class="col-sm-6">

撰寫 Excel .NET 指南

  • 下載 Excel .NET 庫
  • 在特定單元格中寫入值
  • 在多個單元格中寫入靜態值
  • 在範圍內寫入動態值
  • 替換特定行、列、範圍等中的單元格值
class="col-sm-6">
class="download-card"> How To Work related to Write Excel .NET Functions

訪問 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

這段程式碼將在 Excel 文件 sample.xlsx 的工作表 Sheet1 的單元格 A1 中寫入 new value。 同樣,我們可以在 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

通過這種方式,我們指定從 FromTo 的單元格範圍,數據將寫入其中。 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")
$vbLabelText   $csharpLabel

這段程式碼將在 Excel 文件 sample.xlsx 的工作表 Sheet1 中從 B2C5 的範圍內寫入 new value。 它對 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.xlsx 的列 B27 中寫入動態值。 我們可以在 sample.xlsx 中看到程式碼的結果。

class="center-image-wrapper"> 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 應用程序的資訊,以及更多,請查看我們完整的教程,了解如何打開和撰寫 Excel 文件 C#


class="tutorial-segment-title">教程快速訪問

class="tutorial-section">
class="row">
class="col-sm-8">

閱讀 API 參考

閱讀 IronXL 文檔,包括該庫中提供給您的所有函數、功能、命名空間、類別和列舉的列表。

閱讀 API 參考
class="col-sm-4">
class="tutorial-image"> Documentation related to class=教程快速訪問" class="img-responsive add-shadow img-responsive img-popup" src="/img/svgs/documentation.svg" loading="lazy">

常見問題解答

如何開始在 .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 時,在進行更改後必須使用 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,686,155 | 版本: 2025.11 剛剛發布