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

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

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

透過存取工作表、以簡單的括號符號設定單元值並儲存變更,使用 IronXL.Excel 在 C# 中編寫 Excel 資料。 該函式庫支援寫入特定的儲存格、範圍,並可程式化地取代數值,而無需複雜的程式碼。

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

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

本範例展示如何使用 IronXL.Excel 將一個值寫入單一單元格,並在短短幾行內儲存 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

此代碼在 Excel 檔案 sample.xlsx 中工作表 Sheet1 的儲存格 A1 中寫入 new 值。 以相同的方式,您可以在 Excel 檔案的任何儲存格位址中插入值。對於更進階的格式化選項,例如設定 單元格字型和大小或套用 背景顏色和圖案,IronXL.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 的範圍。 新值將寫入此範圍內的所有儲存格。 要了解更多關於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

此代碼在 Excel 檔 sample.xlsx 的工作表 Sheet1 中,從 B2C5 寫入 新值。 它使用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 中的 B 列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 工作表中寫入 新值,並覆寫 舊值

如何取代特定行中的值?

如果您只想在特定行中寫入新值,請執行下列步驟:

: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

這只會在指定的行索引中,將 新值寫入 舊值之上。

如何替換特定欄位中的值?

同樣地,如果您要在特定欄位中的 舊值 上寫入 新值,請執行下列步驟:

: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

上述程式碼會寫入 新值,以取代 舊值,但僅限於指定的列索引中。 工作表的其餘部分保持不變。

如何替換特定範圍內的值?

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

這會在 舊值 上寫入 新值,只是在指定範圍內的儲存格。

請參閱範例,瞭解如何使用上述所有函式寫出新值,以取代 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 檔案中的特定儲存格?

使用 IronXL,您只需使用括號符號存取特定儲存格,並設定其 Value 屬性,即可寫入特定儲存格。例如:worksheet["A1"].Value = "Hello, IronXL!「;然後使用 workbook.SaveAs(」output.xlsx") 儲存工作簿。這種直接的方法可省去複雜的 Excel 互操作程式碼。

以程式化方式將資料寫入 Excel 檔案的第一步是什麼?

第一步是使用 IronXL 的 WorkBook.Load() 方法載入您的 Excel 檔案,然後存取您要寫入資料的特定工作表。IronXL.Excel 使用直觀的方法讓這一切變得簡單,您可以開啟任何 Excel 格式,並立即開始處理單元格和範圍。

我可以在 Excel 中一次將資料寫入多個儲存格嗎?

是的,IronXL 支援有效率地寫入多個儲存格。您可以將靜態值個別寫入多個特定的儲存格,或使用儲存格範圍以程式化的方式寫入多個儲存格的動態值。這個函式庫提供了單一單元操作和大量資料寫入的方法。

如何替換 Excel 試算表中的現有儲存格值?

IronXL 允許您透過簡單地存取儲存格並賦予新值來取代儲存格值。您可以替換特定行、列或範圍中的值。當您為儲存格指定新值時,程式庫會自動處理覆寫現有資料。

寫入資料時支援哪些 Excel 檔案格式?

IronXL.Excel 支援寫入所有主要的 Excel 檔案格式,包括 .xlsx、.xls、.xlsm 和 CSV 檔案。這個函式庫會自動處理特定格式的需求,讓您可以在不改變程式碼方法的情況下,處理任何格式的 Excel 試算表。

我需要安裝 Microsoft Excel 才能用 C# 寫 Excel 檔案嗎?

不,IronXL.Excel 可獨立運作,不需要 Microsoft Excel 或 Office Interop。它是一個獨立的 .NET 函式庫,可以在任何系統上以程式化的方式讀取、寫入和建立 Excel 檔案,因此非常適合伺服器應用程式和未安裝 Excel 的環境。

將資料寫入 Excel 檔案後,如何儲存變更?

將資料寫入儲存格後,使用 IronXL 的 SaveAs() 方法儲存您的變更以建立新檔案,或使用 Save() 方法覆寫現有檔案。該函式庫可確保您所有的儲存格更新、格式化和公式都正確地保存在您指定的 Excel 檔案格式中。

Curtis Chau
技術撰稿人

Curtis Chau 擁有電腦科學學士學位(卡爾頓大學),專長於前端開發,精通 Node.js、TypeScript、JavaScript 和 React。Curtis 對製作直覺且美觀的使用者介面充滿熱情,他喜歡使用現代化的架構,並製作結構良好且視覺上吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 也有濃厚的興趣,他喜歡探索整合硬體與軟體的創新方式。在空閒時間,他喜歡玩遊戲和建立 Discord bots,將他對技術的熱愛與創意結合。

準備好開始了嗎?
Nuget 下載 1,846,091 | 版本: 2026.2 剛剛發布