如何在 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的依賴。 本指南涵蓋了使用經過測試的功能快速且正確地編輯 Excel 檔案的步驟。

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

此範例顯示如何載入現有的Excel檔案、更新單一儲存格,並使用IronXL保存更改。 在5行以內開始,無需Interop。 有關複雜操作,請查看我們的API參考

  1. 使用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,使其適用於跨平台開發。

您可以下載IronXL.zip或通過NuGet包頁面閱讀更多並安裝。

安裝完成後,讓我們開始吧。 新手使用IronXL? 查看我們的開始指南概覽以獲得全面介紹。


Install-Package IronXL.Excel

根據需要用適當的版本號替換x.x.x


教程

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

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

導入要修改的Excel 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試算表中高亮顯示的儲存格在國家欄中顯示'France',演示編輯用的儲存格選擇 Excel儲存格B4顯示'New Value'並在編輯儲存格內容後顯示藍色選擇邊框

注意修改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列高亮顯示,顯示法國與蒙塔納產品的政府細分資料 Excel表顯示新列,其中新增了'Sales'資料試算表中所有欄的 'New Value' 條目

使用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欄填入'New Value'文字

如何使用動態值編輯完整列?

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列顯示'New Value 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表結果:

清除前 清除後
Excel試算表中將Country列高亮顯示,顯示橫跨產品和國家的業務資料 Excel表顯示Country列在批量編輯操作后填入動態佔位符值'New Value 1-9'

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

使用Replace功能替換Excel SpreadSheet中的任何值型別為更新的值。 使用此功能根據任何要求情況替換Excel SpreadSheet資料。 這在資料清理、更換術語或修正試算表中的系統錯誤時很好用。

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

為在整個Excel 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

此功能將new value在完整的Excel SpreadSheet中。 這是對批量更新的強大功能,否則需要在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行將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中的某一個值替換為新值,𰻝𬍦陊𪎓⻙𫺎𴝃𐂓:

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欄將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

上述程式碼僅在從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的第3列,如下表所示:

清除前 清除後
Excel工作表中將第4列高亮顯示顯示加拿大政府部門在行清除操作前的数據 Excel Worksheet在行移除操作後將第4列用藍色高亮顯示顯示結果

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

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

:path=/static-assets/excel/content-code-examples/how-to/csharp-edit-excel-file-17.cs
// Remove a worksheet by its index
wb.RemoveWorkSheet(1); // by sheet indexing
$vbLabelText   $csharpLabel

WorkSheetWorkSheet,與上述範例相同。 按照名稱移除工作表:

:path=/static-assets/excel/content-code-examples/how-to/csharp-edit-excel-file-18.cs
// 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 文件中的單元格值的最簡單方式是什麼?

透過 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大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

準備好開始了嗎?
Nuget 下載 2,150,290 | 版本: 2026.7 剛剛發布
Still Scrolling Icon

仍在滾動嗎?

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