如何在 C# 中編輯 Excel 檔案

C# 編輯 Excel 檔案

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

使用 IronXL程式庫以 C# 編輯 Excel 檔案,該程式庫提供簡易的方法,可透過程式化方式修改儲存格、列、欄及工作表,無需使用 Excel Interop,從而減少錯誤與複雜性。

開發人員在 C# 中修改 Excel 檔案時需要高度精準,因為一個錯誤就可能導致整個文件損毀。 簡潔高效的程式碼可降低出錯風險,並簡化 Excel 檔案的程式化編輯或刪除作業。 IronXL 提供了一套完整的解決方案,讓開發者能在 C# 環境中處理 Excel 檔案,並擺脫對 Microsoft Office 的依賴。 本指南涵蓋了如何使用經過驗證的函式,在 C# 中正確且快速地編輯 Excel 檔案的步驟。

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

此範例展示如何使用 IronXL 載入現有 Excel 檔案、更新單一儲存格,並儲存變更。 不到 5 行代碼即可開始使用,無需 Interop。 若需處理複雜操作,請參閱我們的完整 API 參考手冊

  1. using NuGet 套件管理員安裝 https://www.nuget.org/packages/IronXL.Excel

    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

如何設定 IronXL 進行 C# Excel 編輯?

本教學使用 IronXL,這是一個 C# Excel 程式庫。 請下載並將其安裝至您的專案中(開發用途免費),即可使用這些功能。 IronXL 支援多種平台,包括 LinuxmacOS,使其在跨平台開發中具有高度的靈活性。

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

安裝完成後,讓我們開始吧。 初次接觸 IronXL? 請參閱我們的《入門指南》,以獲取全面介紹。


Install-Package IronXL.Excel

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


操作教學

如何在 Excel 中編輯特定儲存格的數值?

首先,學習如何編輯 Excel SpreadSheet 中的特定儲存格值。 這是使用 C# 編輯 Excel 檔案時最常見的操作之一。

匯入 Excel SpreadSheet 進行修改,然後存取其 WorkSheet。 請依照以下示例進行修改。 IronXL 提供多種存取儲存格的方式,能靈活適應不同的程式設計風格。

: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");
Imports IronXL

' Load the Excel workbook
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
' Access a specific worksheet
Dim ws As WorkSheet = 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")
$vbLabelText   $csharpLabel

以下是 Excel SpreadSheet sample.xlsx 的翻譯前後截圖:

完成後
Excel 試算表中,國家欄位標示為 編輯儲存格內容後,Excel 儲存格 B4 顯示

請注意修改 Excel SpreadSheet 值是多麼簡單。 此方法在更新特定資料點時效果良好,且不會影響試算表的其他部分。

另一種透過儲存格位址編輯特定儲存格值的方法:

// 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

如何在 Excel 中編輯整列的數值?

輕鬆將 Excel SpreadSheet 的整行值編輯為靜態值。 此操作在一次更新整筆記錄時特別有用,例如重設資料或執行批次更新。 針對複雜的資料表列操作,請探索新增列與欄的功能。

: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");
Imports IronXL

Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
' Setting a static value for the entire row
ws.Rows(3).Value = "New Value"
wb.SaveAs("sample.xlsx")
$vbLabelText   $csharpLabel

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

完成後
Excel 試算表,第 4 行已標示,顯示法國政府部門使用 Montana 產品的相關數據 Excel 表格顯示銷售資料試算表中新增一行,所有欄位均已填入

使用 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

在處理範圍時,您可能還需要選取範圍以進行排序或套用公式等進階操作。


如何在 Excel 中編輯整欄的數值?

輕鬆地將 Excel SpreadSheet 欄位中的所有值統一替換為單一值。 此功能特別適用於更新貨幣欄位、套用新稅率,或將整個欄位的資料格式標準化等情境。

: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");
Imports IronXL

Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
' Setting a static value for the entire column
ws.Columns(1).Value = "New Value"
wb.SaveAs("sample.xlsx")
$vbLabelText   $csharpLabel

這將產生如下所示的 sample.xlsx 試算表:

完成後
Excel 試算表中以藍色標示的 執行批量欄位編輯操作後,Excel 試算表的 B 欄顯示為

如何編輯包含動態值的整行資料?

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");
Imports IronXL
Imports System.Linq

Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
For i As Integer = 0 To ws.Columns.Count() - 1
    ' Assign dynamic values to each cell in the row
    ws.Rows(3).Columns(i).Value = "New Value " & i.ToString()
Next
wb.SaveAs("sample.xlsx")
$vbLabelText   $csharpLabel

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

完成後
Excel 試算表,第 4 行已標示,顯示在套用動態數值進行編輯前的 Enterprise 部門資料 經過動態行編輯操作後,Excel 試算表第 4 行顯示

如何編輯包含動態值的整欄資料?

輕鬆編輯含有動態值的特定欄位。 此技術有助於根據列位置,將序列資料(如 ID 號碼、日期或計算值)填入欄位中。

: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");
Imports IronXL
Imports System.Linq

Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
For i As Integer = 0 To ws.Rows.Count() - 1
    ' Skip the first row if it's used as a header
    If i = 0 Then
        Continue For
    End If
    ' Assign dynamic values to each cell in the column
    ws.Rows(i).Columns(1).Value = "New Value " & i.ToString()
Next
wb.SaveAs("sample.xlsx")
$vbLabelText   $csharpLabel

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

完成後
Excel 試算表中 經過批次編輯操作後,Excel 工作表中的

如何在 Excel 中替換試算表中的數值?

在 Excel SpreadSheet 中,使用 Replace 函數將任何值型別替換為更新後的值。 請在任何需要的情況下,使用此功能來替換 Excel 中的 SpreadSheet 資料。 此工具非常適合用於資料清理、更新術語,或修正跨試算表的系統性錯誤。

如何在整個工作表中替換值?

若要在整個 Excel 檔案中將 SpreadSheet 替換為更新後的值,請開啟 WorkSheet 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 SpreadSheet 中,將 old value 替換為 new value。 這是一項強大的批量更新功能,若無此功能,原本需在 Excel 中手動執行"尋找與替換"操作。

請記得在進行任何變更後儲存檔案,如上方的範例所示。 如需更多關於儲存及匯出 Excel 檔案的資訊,請參閱我們的電子試算表檔案類型轉換指南。

如何替換特定列中的值?

若要修改特定列而非整個工作表,請使用以下程式碼:

// 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。其餘的 WorkSheet 保持不變。

如何替換行範圍內的值?

請按以下方式替換特定範圍內的數值:

// 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

如何替換特定欄位的值?

在保持工作表其餘內容不變的情況下,替換特定欄位的數值:

// 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

如何替換欄位範圍內的值?

請使用 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


如何從 Excel 試算表中刪除一行?

IronXL 提供了一個簡單的函式,用於移除 Excel 中的特定列 SpreadSheet。 此功能有助於清理資料或從試算表中移除過時的記錄。 請參閱範例:

: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");
Imports IronXL

Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
' Setting a static value for the entire row
ws.Rows(3).Value = "New Value"
wb.SaveAs("sample.xlsx")
$vbLabelText   $csharpLabel

上述程式碼會移除 SpreadSheet sample.xlsx 的第 3 行,如下表所示:

完成後
高亮顯示第 4 行的 Excel 試算表,顯示加拿大政府部門的資料(在移除行操作之前) Excel 工作表中第 4 行以藍色標示,顯示移除行後的效果

如何從 Excel 檔案中移除工作表?

若要移除 Excel 檔案中完整的 WorkSheet,請使用以下方法。 這有助於整合資料或移除用於計算的臨時工作表。 如需更多關於管理工作表的資訊,請參閱我們的《管理工作表指南》。

// 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

WorkSheet WorkSheet 即是 WorkSheet,與上述範例相同。 要按名稱刪除工作表:

// 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 中執行各類編輯與刪除操作 SpreadSheets。 探索更多功能,例如建立 Excel 圖表套用條件格式,或運用公式。 若您在專案中使用 IronXL 時有任何疑問,請聯絡我們的開發團隊。


函式庫快速存取

IronXL程式庫文件

透過 IronXL C# 程式庫的各項功能,充分發揮其潛力,讓您能編輯、刪除、格式化並完善您的 Excel 工作簿。

IronXL程式庫文件
Documentation related to 如何從 Excel 檔案中移除工作表?

常見問題

如何在未安裝 Microsoft Office 的情況下,使用 C# 編輯 Excel 檔案?

IronXL 讓您能夠使用 C# 編輯 Excel 檔案,無需 Microsoft Office 或 Excel Interop。它提供一個獨立的程式庫,可透過程式設計方式修改儲存格、列、欄及工作表,消除對 Office 的依賴,並支援包括 Linux 和 macOS 在內的跨平台運作。

using C# 更新 Excel 檔案中儲存格值的最簡單方法是什麼?

using IronXL,您只需幾行程式碼即可更新儲存格值:IronXl.WorkBook.Load("file.xlsx").GetWorkSheet("Sheet1")["C3"].Value = "Hello IronXL";隨後儲存工作簿。此方法無需 Excel Interop,即可直接存取儲存格。

我能否透過程式設計在 Excel 中編輯整行與整列?

是的,IronXL 支援編輯包含靜態或動態值的完整列與欄。您可以使用單一值修改整行、透過程式碼填入欄位,或使用來自資料庫或計算等各種來源的動態資料來更新行。

如何在 C# 中從 Excel 檔案中刪除列或工作表?

IronXL 提供簡易的方法,可從工作表中移除列,並從 Excel 檔案中刪除整個工作表。這些操作皆透過程式化方式執行,無需安裝 Excel,因此非常適合用於伺服器端應用程式。

是否可以在整個 Excel 試算表中搜尋並替換值?

是的,IronXL 包含跨試算表搜尋與替換值的功能。您可以透過程式設計方式尋找特定值並將其替換為新資料,這與 Excel 的原生搜尋與替換功能類似,但透過 C# 程式碼實現自動化。

C# Excel 編輯函式庫支援哪些平台?

IronXL 支援多種平台,包括 Windows、Linux 和 macOS,使其在跨平台開發中極具靈活性。這讓您能夠在 C# 應用程式中編輯 Excel 檔案,無論部署環境為何。

如何開始使用 C# 編輯 Excel 檔案?

開始使用前,請透過 NuGet 套件管理員下載並安裝 IronXL。此程式庫供開發用途免費使用。安裝完成後,您即可立即透過簡單直覺的程式碼載入 Excel 檔案、修改儲存格,並儲存變更。

相較於手動方法,程式化編輯 Excel 有哪些優勢?

IronXL 支援程式化 Excel 編輯,可減少人為錯誤、自動化重複性任務,並能執行若以手動方式處理將十分耗時的批次操作。此外,它還免除了對 Excel Interop 的需求,從而降低複雜度並提升效能。

Curtis Chau
技術撰稿人

Curtis Chau 擁有卡爾頓大學(Carleton University)的電腦科學學士學位,專精於前端開發,並精通 Node.js、TypeScript、JavaScript 及 React。他熱衷於打造直觀且美觀的用戶介面,喜歡運用現代框架,並創建結構完善、視覺上吸引人的手冊。

除了開發工作之外,Curtis 對物聯網(IoT)抱有濃厚興趣,致力於探索整合硬體與軟體的創新方法。閒暇時,他喜歡玩遊戲和開發 Discord 機器人,將對科技的熱愛與創意相結合。

準備開始了嗎?
Nuget 下載 2,052,917 | 版本: 2026.6 just released
Still Scrolling Icon

還在捲動嗎?

想要快速證明? PM > Install-Package IronXL.Excel
執行範例 觀看您的資料變成試算表。