C# 編輯 Excel 檔案
使用IronXL程式庫在C#中編輯Excel檔案,提供簡單的方法來程式化修改儲存格、列、欄和工作表,無需Excel Interop,降低錯誤和複雜性。
開發者在用C#修改Excel檔案時需要精確,因為一個錯誤可能會損壞整個文件。 簡單高效的程式碼降低錯誤風險,簡化Excel檔案的程式化編輯或刪除。 IronXL提供全面的解決方案,用於在C#中處理Excel檔案,消除了對Microsoft Office的依賴。 本指南涵蓋了使用經過測試的功能快速且正確地編輯 Excel 檔案的步驟。
快速入門:用IronXL編輯特定儲存格值
此範例顯示如何載入現有的Excel檔案、更新單一儲存格,並使用IronXL保存更改。 在5行以內開始,無需Interop。 有關複雜操作,請查看我們的API參考。
最小工作流程(8步)
- Download the C# Edit Excel Library
- 編輯特定儲存格值
- 用靜態值編輯完整列的值
- 用單一值編輯完整欄
- 用動態值編輯完整列
- 替換試算表值
- 從Excel工作表中移除列
- 從Excel檔案中移除工作表
步驟 1
如何設置IronXL來進行C# Excel編輯?
本教程使用IronXL,這是一個C# Excel程式庫。 下載並安裝到您的項目中(開發免費)以使用這些功能。 IronXL支持多個平台,包括Linux和macOS,使其適用於跨平台開發。
您可以下載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")
以下是 Excel SpreadSheet sample.xlsx的前後截圖:
| 清除前 | 清除後 |
|---|---|
![]() |
![]() |
注意修改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"
如何在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")
請參閱以下sample.xlsx的截圖:
| 清除前 | 清除後 |
|---|---|
![]() |
![]() |
使用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"
處理範圍時,您可能還需要選擇範圍以進行排序或應用公式等高級操作。
如何在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")
這生產了我們如圖所示的sample.xlsx試算表:
| 清除前 | 清除後 |
|---|---|
![]() |
![]() |
如何使用動態值編輯完整列?
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")
下表顯示了Excel SpreadSheet sample.xlsx 從輸出獲取的螢幕截圖:
| 清除前 | 清除後 |
|---|---|
![]() |
![]() |
如何使用動態值編輯完整欄?
輕鬆使用動態值編輯特定欄。 此技術有助於填充具有連續資料的欄,例如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")
如下所示的sample.xlsx表結果:
| 清除前 | 清除後 |
|---|---|
![]() |
![]() |
如何在 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")
此功能將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")
上述程式碼僅在第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")
要在條從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")
如何替換特定欄中的值?
替換特定欄的值而保留工作表的其餘部分不變:
// 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")
上述程式碼僅對第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")
上述程式碼僅在從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")
上述程式碼移除了SpreadSheet的第3列,如下表所示:
| 清除前 | 清除後 |
|---|---|
![]() |
![]() |
如何從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
WorkSheet 是 WorkSheet,與上述範例相同。 按照名稱移除工作表:
: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
IronXL包括更多功能,用於輕鬆執行Excel SpreadSheets中的任何型別編輯和刪除。 探索其他功能,如程式化建立Excel圖表、應用條件格式化或處理公式。 如在您的項目中使用IronXL有任何問題,請聯繫我們的開發團隊。
程式庫快捷存取
常見問題
我如何在沒有安裝 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 的需求,減少了複雜性並提高了性能。













