如何在C#中編輯Excel文件

C# Edit Excel File

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

當開發者開始修改和編輯 C# 中的 Excel 文件時,必須小心,因為一個不小心的步驟可能改變整個文件。 能夠依賴簡單而有效的程式碼行有助於減少錯誤的風險,並讓我們更容易以程式方式編輯或刪除 Excel 文件。 今天,我們將逐步講解如何使用經過測試的功能在 C# 中正確且快速地編輯 Excel 檔案。

快速入門:使用 IronXL 編輯特定的單元格值

本例示範了如何輕鬆地載入現有的 Excel 檔案、更新單個單元格,並使用 IronXL 保存變更。 在 5 行以內開始,無需 Interop。

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.

    IronXL.WorkBook.Load("file.xlsx").GetWorkSheet("Sheet1")["C3"].Value = "Hello IronXL";
    // then save your workbook
    iroExcelWorkBook.SaveAs("file.xlsx");
  3. Deploy to test on your live environment

    Start using IronXL in your project today with a free trial
    arrow pointer
class="hsg-featured-snippet">

最小工作流程(5 步驟)

  1. 下載 C# 編輯 Excel 庫
  2. 編輯特定單元格值
  3. 用靜態值編輯 Excel 試算表的整列值
  4. 用單一值編輯 Excel 試算表的整欄值
  5. 用動態值編輯整列
  6. 替換試算表的值
  7. 從 Excel 試算表中移除行
  8. 從 Excel 檔案中刪除工作表

class="main-content__segment-title">步驟 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

根據需要將 x.x.x 替換為適當的版本號。


class="main-content__segment-title">如何教程

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 的前後截圖:

之前 之後
之前 之後

我們可以看到修改 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 的截圖:

之前 之後
之前 之後

為此,我們還可以使用範圍函數編輯該行特定範圍的值:

// 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 試算表:

之前 之後
之前 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 的截圖結果:

之前 之後
之前 之後

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 的表格結果如下:

之前 之後
之前 之後

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 工作表中將 旧值 替換為 新值

更改之後,不要忘記保存檔案,如上例所示。

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 行中將 旧值 替換為 新值。 工作表的其他部分保持不變。

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

假設,如果我們想在第 4 行的範圍內從 B4E4 將舊值替換為新值,我們可以如此書寫:

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 列的 旧值新值

7.5. 替換列範圍的值

通過以下方式,我們也可以使用範圍函數在特定列的範圍內進行替換。

// 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 中將 旧值 替換為 新值


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,如下表所示:

之前 之後
之前 之後

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 是工作簿,如上面的例子。 如果我們想按名稱刪除工作表,則:

// 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 試算表中執行任何類型的編輯和刪除。 如果您在專案中使用有任何疑問,請隨時聯繫我們的開發團隊。


class="main-content__segment-title">庫快速訪問

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

IronXL 庫文檔

瞭解 IronXL C# 庫的全部功能,提供編輯、刪除、樣式和完善您的 Excel 工作簿的多種功能。

IronXL 庫文檔
class="col-sm-4">
class="tutorial-image"> 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,686,155 | 版本: 2025.11 剛剛發布