如何在 C# 中編輯 Excel 文件

C# 編輯 Excel 檔案。

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

使用 IronXL.Excel 函式庫在 C# 中編輯 Excel 檔案,該函式庫提供簡單的方法以程式化方式修改儲存格、行、列和工作表,而無需 Excel Interop,可減少錯誤和複雜性。

開發人員在 C# 中修改 Excel 檔案時需要精確度,因為一個錯誤可能會損壞整個文件。 簡單、有效率的程式碼可降低出錯風險,並簡化 Excel 檔案的程式化編輯或刪除。 IronXL 為 以 C# 處理 Excel 檔案提供全面的解決方案,消除 Microsoft Office 的依賴性。 本指南涵蓋了在 C# 中使用經過測試的函數正確、快速地編輯 Excel 檔案的步驟。

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

本範例展示如何使用 IronXL.Excel 載入現有 Excel 檔案、更新單一儲存格,並儲存變更。 只需不到 5 行程式碼即可開始,無需 Interop。 對於複雜的操作,請探索我們全面的 API Reference

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

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

本教學使用 IronXL,一個 C# Excel 函式庫。 下載並安裝到您的專案中(免費開發),即可使用這些功能。 IronXL.Excel 支援各種平台,包括 LinuxmacOS,使其成為跨平台開發的多功能工具。

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

安裝完成後,讓我們開始吧。 IronXL 新手? 請參閱我們的 Get Started Overview 以取得全面的介紹。


Install-Package IronXL.Excel

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


操作指南

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

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

匯入要修改的 Excel 試算表,然後存取其工作表。 如下所示進行修改。 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電子表格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 表格顯示在銷售資料試算表的所有欄位中新增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";
' 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 試算表中的 Country 欄以藍色突出顯示,顯示跨區段和國家/地區的業務資料 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 行高亮顯示使用動態值編輯前的企業段資料 Excel 工作表,其中第 4 行在進行動態列編輯作業後顯示"新值 0-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的表格結果:

高亮顯示 Country 一欄的 Excel 試算表,顯示跨區段和產品的業務資料 批量編輯作業後,Excel 工作表顯示 Country 欄填滿了動態佔位符值 'New Value 1-9'

如何在 Excel 中取代試算表中的值?

使用 Replace 函式在 Excel SpreadSheet 中以更新值取代任何值類型。 在任何需要的情況下,使用此功能取代 Excel SpreadSheet 資料。 這對於資料清理、更新術語或糾正試算表間的系統錯誤非常有效。

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

若要在整個完整的 Excel WorkSheet 中以更新值取代特定值,請存取 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 WorkSheet 中以 新值取代 <code> 舊值。 對於原本需要在 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 行以 new 值取代 <code>old 值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

若要在行號 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

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

取代特定欄位的值,同時保持工作表的其他部分不變:

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

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

使用範圍函數在特定欄位的範圍內進行取代:

// 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 的範圍內,以 新值取代 <code> 舊值


如何從 Excel 工作表中移除一列?

IronXL.Excel 提供一個簡單的函式來移除 Excel WorkSheet 的特定行。 此功能有助於清理資料或從試算表中移除過期記錄。 請參閱範例:

: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 的第 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

wbWorkBook,與上述範例相同。 若要依名稱移除工作表

// 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 包含更多功能,可在 Excel SpreadSheet 中輕鬆執行任何類型的編輯和刪除。 探索其他功能,例如 建立 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。

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

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

我可以在 Excel 中以程式化方式編輯整行整列嗎?

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

如何使用 C# 從 Excel 檔案中移除行或工作表?

IronXL.Excel 提供了從工作表中移除行以及從 Excel 檔案中刪除整個工作表的簡單方法。這些操作都是以程式化的方式執行,不需要安裝 Excel,因此非常適合伺服器端應用程式。

是否可以在 Excel 試算表中尋找並取代整個試算表中的值?

是的,IronXL 包含在電子表格中搜尋和取代值的功能。您可以程式化地尋找特定值,然後用新的資料取代它們,類似 Excel 的原生尋找和取代功能,但透過 C# 程式碼來自動執行。

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

IronXL 支援多種平台,包括 Windows、Linux 和 macOS,是跨平台開發的多面手。無論部署環境如何,您都可以在 C# 應用程式中編輯 Excel 檔案。

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

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

與手動方式相比,程式化 Excel 編輯有哪些優點?

IronXL.Excel 支援程式化 Excel 編輯,可減少人為錯誤、自動執行重複性工作,並可進行手動耗時的大量作業。它還消除了 Excel Interop 的需要,降低了複雜性並提高了性能。

Curtis Chau
技術撰稿人

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

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

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