如何在 C# 中編輯 Excel 文件

C# 編輯 Excel 文件

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

開發人員在使用 C# 修改和編輯 Excel 文件時必須格外小心,因為一個錯誤可能會改變整個文件。 能夠依靠簡單且有效率的程式碼行有助於降低出錯的風險,並使我們能夠以程式設計方式更輕鬆地編輯或刪除 Excel 檔案。 今天我們將逐步講解如何使用經過測試的函數,在 C# 中正確、快速地編輯 Excel 檔案。

快速入門:使用 IronXL 編輯特定儲存格值

本範例展示了使用 IronXL 載入現有 Excel 檔案、更新單一儲存格並儲存變更是多麼容易。 只需不到 5 行程式碼即可開始,無需 Interop。

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

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

    PM > Install-Package IronXL.Excel

  2. 複製並運行這段程式碼。

    IronXL.WorkBook.Load("file.xlsx").GetWorkSheet("Sheet1")["C3"].Value = "Hello IronXL";
    // then save your workbook
    iroExcelWorkBook.SaveAs("file.xlsx");
  3. 部署到您的生產環境進行測試

    立即開始在您的專案中使用 IronXL,免費試用!
    arrow pointer

步驟 1

1. 使用 IronXL 庫的 C# 編輯 Excel 文件

在本教學中,我們將使用 IronXL(一個 C# Excel 函式庫)定義的函數。 要使用這些功能,您需要先下載並將其安裝到您的專案中(開發免費)。

You can either Download IronXL.zip or read more and install via the NuGet package page.

安裝完成後,我們就可以開始了!


Install-Package IronXL.Excel

根據需要將xxx替換為相應的版本號。


操作指南

2. 編輯特定儲存格值

首先,我們將學習如何編輯 Excel 表格中的特定儲存格值。

為此,我們匯入要修改的 Excel 電子表格,然後存取其工作表。 然後我們可以應用如下所示的修改。

:path=/static-assets/excel/content-code-examples/how-to/csharp-edit-excel-file-specific-cell-value.cs
using IronXL;

// Load the Excel workbook
WorkBook wb = WorkBook.Load("sample.xlsx");
// Access a specific worksheet
WorkSheet ws = wb.GetWorkSheet("Sheet1");
// Access specific cell by identifying its row and column, then modify its value
ws.Rows[3].Columns[1].Value = "New Value";
// Save changes to the workbook
wb.SaveAs("sample.xlsx");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

以下是Excel電子表格sample.xlsx的修改前後截圖:

before after

我們可以看到修改Excel電子表格中的值是多麼簡單。

如有需要,也可以透過儲存格位址編輯特定儲存格的值:

// Alternative way to access specific cell and apply changes
ws["B4"].Value = "New Value";
// Alternative way to access specific cell and apply changes
ws["B4"].Value = "New Value";
' Alternative way to access specific cell and apply changes
ws("B4").Value = "New Value"
$vbLabelText   $csharpLabel

3. 編輯整行值

要編輯Excel電子表格中具有靜態值的整行值非常簡單。

:path=/static-assets/excel/content-code-examples/how-to/csharp-edit-excel-file-row-value.cs
using IronXL;

WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
// Setting a static value for the entire row
ws.Rows[3].Value = "New Value";
wb.SaveAs("sample.xlsx");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

請參閱下方sample.xlsx的螢幕截圖:

before after

為此,我們也可以使用 range 函數來編輯行中特定範圍的值:

// Editing a specific range of a row
ws["A3:E3"].Value = "New Value";
// Editing a specific range of a row
ws["A3:E3"].Value = "New Value";
' Editing a specific range of a row
ws("A3:E3").Value = "New Value"
$vbLabelText   $csharpLabel

4. 編輯整列值

與上述方法類似,我們可以使用單一值輕鬆編輯 Excel 電子表格中的整列值。

:path=/static-assets/excel/content-code-examples/how-to/csharp-edit-excel-file-full-column.cs
using IronXL;

WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
// Setting a static value for the entire column
ws.Columns[1].Value = "New Value";
wb.SaveAs("sample.xlsx");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

這將產生如下所示的sample.xlsx電子表格:

before after

5. 編輯包含動態值的整行

使用 IronXL,也可以編輯具有動態值的特定行。 這意味著我們可以透過為每個單元格分配動態值來編輯整行。 我們來看一個例子:

:path=/static-assets/excel/content-code-examples/how-to/csharp-edit-excel-file-full-row-dynamic.cs
using IronXL;
using System.Linq;

WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
for (int i = 0; i < ws.Columns.Count(); i++)
{
    // Assign dynamic values to each cell in the row
    ws.Rows[3].Columns[i].Value = "New Value " + i.ToString();
}
wb.SaveAs("sample.xlsx");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

下表顯示了此次輸出中 Excel 表格sample.xlsx的螢幕截圖:

before after

6. 編輯包含動態值的整列

編輯具有動態值的特定欄位也很簡單。

:path=/static-assets/excel/content-code-examples/how-to/csharp-edit-excel-file-full-column-dynamic.cs
using IronXL;
using System.Linq;

WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
for (int i = 0; i < ws.Rows.Count(); i++)
{
    // Skip the first row if it's used as a header
    if (i == 0)
        continue;
    // Assign dynamic values to each cell in the column
    ws.Rows[i].Columns[1].Value = "New Value " + i.ToString();
}
wb.SaveAs("sample.xlsx");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

以下是sample.xlsx的表格結果:

before after

7. 替換電子表格值

如果要將 Excel 電子表格中的任何類型的值替換為更新的值,我們可以使用名為Replace函數。 利用此功能,我們可以在任何需要的情況下替換 Excel 電子表格中的資料。

7.1. 取代整個工作表中的特定值

要將整個 Excel 工作表中的特定值替換為更新的值,我們只需存取工作表ws (與上面的範例相同),然後像這樣套用Replace功能。

// Replace a specific value in the entire worksheet
ws.Replace("old value", "new value");
// Replace a specific value in the entire worksheet
ws.Replace("old value", "new value");
' Replace a specific value in the entire worksheet
ws.Replace("old value", "new value")
$vbLabelText   $csharpLabel

此函數會將整個 Excel 工作表中的old value替換為new value

如上例所示,每次變更後都不要忘記儲存檔案。

7.2. 替換特定行的值

如果您只想更改特定行而不是整個工作表,請使用此程式碼。

// Replace a specific value in a specific row
ws.Rows[2].Replace("old value", "new value");
// Replace a specific value in a specific row
ws.Rows[2].Replace("old value", "new value");
' Replace a specific value in a specific row
ws.Rows(2).Replace("old value", "new value")
$vbLabelText   $csharpLabel

上述程式碼只會將第2行的old value替換為new value 。 工作表的其餘部分保持不變。

7.3. 替換行範圍的值

我們也可以如下替換特定範圍內的值:

// Replace specific values in a row range
ws["From Cell Address : To Cell Address"].Replace("old value", "new value");
// Replace specific values in a row range
ws["From Cell Address : To Cell Address"].Replace("old value", "new value");
' Replace specific values in a row range
ws("From Cell Address : To Cell Address").Replace("old value", "new value")
$vbLabelText   $csharpLabel

假設我們只想將第4B4E4單元格範圍內的舊值替換為新值,那麼我們可以這樣寫:

ws["B4:E4"].Replace("old value", "new value");
ws["B4:E4"].Replace("old value", "new value");
ws("B4:E4").Replace("old value", "new value")
$vbLabelText   $csharpLabel

7.4. 替換特定列的值

我們也可以替換特定列的值,而工作表的其餘部分保持不變。

// Replace specific values in a column
ws.Columns[1].Replace("old value", "new value");
// Replace specific values in a column
ws.Columns[1].Replace("old value", "new value");
' Replace specific values in a column
ws.Columns(1).Replace("old value", "new value")
$vbLabelText   $csharpLabel

上述程式碼將僅對第1列取代old value new value

7.5. 替換列範圍的值

透過以下方式,我們也可以使用 range 函數來取代特定欄位中的某個範圍內的值。

// Replace specific values in a column range
ws["B5:B10"].Replace("old value", "new value");
// Replace specific values in a column range
ws["B5:B10"].Replace("old value", "new value");
' Replace specific values in a column range
ws("B5:B10").Replace("old value", "new value")
$vbLabelText   $csharpLabel

上述程式碼將把B列中B5B10範圍內的old value替換為new value


8. 從Excel工作表中刪除行

IronXL 提供了一個非常簡單的功能,可以刪除 Excel 工作表中的特定行。 我們來看一個例子。

:path=/static-assets/excel/content-code-examples/how-to/csharp-edit-excel-file-row-value.cs
using IronXL;

WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
// Setting a static value for the entire row
ws.Rows[3].Value = "New Value";
wb.SaveAs("sample.xlsx");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

上述程式碼將刪除sample.xlsx中的第3行,如下表所示:

before after

9. 從 Excel 檔案中刪除工作表

如果要刪除 Excel 檔案中的整個工作表,可以使用下列方法:

// Remove a worksheet by its index
wb.RemoveWorkSheet(1); // by sheet indexing
// Remove a worksheet by its index
wb.RemoveWorkSheet(1); // by sheet indexing
' Remove a worksheet by its index
wb.RemoveWorkSheet(1) ' by sheet indexing
$vbLabelText   $csharpLabel

wb是 WorkBook,與上面的範例相同。 如果要按名稱刪除工作表,則:

// Remove a worksheet by its name
wb.RemoveWorkSheet("Sheet1"); //by sheet name
// Remove a worksheet by its name
wb.RemoveWorkSheet("Sheet1"); //by sheet name
' Remove a worksheet by its name
wb.RemoveWorkSheet("Sheet1") 'by sheet name
$vbLabelText   $csharpLabel

IronXL 擁有更多功能,我們可以輕鬆地在 Excel 電子表格中執行任何類型的編輯和刪除操作。 如果您在使用過程中遇到任何問題,請聯絡我們的開發團隊。


圖書館快速訪問

IronXL 庫文檔

利用 IronXL C# 庫的各種函數,探索其全部功能,用於編輯、刪除、設定樣式和完善您的 Excel 工作簿。

IronXL 庫文檔
Documentation related to 9. 從 Excel 檔案中刪除工作表

常見問題解答

如何在 C# 中不使用 Interop 編輯 Excel 文件?

通過利用 IronXL 庫,您可以在 C# 中不使用 Interop 編輯 Excel 文件。IronXL 提供了多種修改 Excel 文件的方法,例如編輯單元格、行和列,甚至刪除工作表。

如何使用 IronXL 修改 Excel 文件中的單元格值?

要使用 IronXL 修改 Excel 文件中的單元格值,請加載 Excel 工作簿並訪問特定工作表。您可以通過指定行和列的索引來更改單元格值,然後保存工作簿。

在 C# Excel 應用程序中替換值的方法是什麼?

在 C# Excel 應用程序中,您可以使用 IronXL 的 Replace 函數替換值。這使您可以跨整個工作表或特定行、列或範圍替換特定值。

如何在 C# 中以程式方式從 Excel 文件中刪除工作表?

您可以使用 IronXL 的 RemoveWorkSheet 方法,以程式方式在 C# 中從 Excel 文件中刪除工作表。您可以通過名稱或索引指定要刪除的工作表。

我可以在 C# 中編輯 Excel 文件中的整行嗎?

是的,使用 IronXL,您可以在 C# 中編輯 Excel 文件中的整行。您可以通過遍歷列為行中的單元格分配靜態或動態值。

是否可以在 Excel 文件的整列中設置靜態值?

是的,IronXL 允許您在 Excel 文件的整列中設置靜態值。如果需要,您也可以使用動態值,方法是遍歷列中的每個單元格。

如何在 C# 中刪除 Excel 工作表中的特定行?

要在 C# 中使用 IronXL 庫的 RemoveRow 方法來刪除 Excel 工作表中的特定行,請指定要刪除的行。

開始使用 C# 編輯 Excel 文件的初始步驟是什麼?

要開始使用 C# 編輯 Excel 文件,首先下載並安裝 IronXL 庫。然後加載您的 Excel 工作簿,選擇要編輯的工作表,並根據需要使用 IronXL 的功能修改單元格、行、列或工作表。

IronXL 適合開發環境嗎?

是的,IronXL 非常適合開發環境。它可以免費用於開發目的,並提供全面的功能套件以程式方式編輯 Excel 文件。

如何使用 C# 將 Excel 文件轉換為不同格式?

IronXL 允許使用其導出功能將 Excel 文件轉換為不同格式。您可以使用 IronXL 的方法將修改後的 Excel 工作簿保存為 CSV、HTML 或 PDF 格式。

Curtis Chau
技術作家

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

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

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