C# 編輯 Excel 檔案
開發者在使用 C# 修改和編輯 Excel 文件時必須小心,因為一個小錯誤就可能改變整個文件。 能夠依賴簡單且高效的代碼行有助於降低錯誤風險,並使我們更容易以程式化方式編輯或刪除 Excel 檔案。 今天我們將逐步介紹如何使用經過測試的功能在 C# 中正確且快速地編輯 Excel 文件。
如何在C#中編輯Excel文件
- 下載 C# 編輯 Excel 函式庫
- 編輯特定的單元格值
- 使用靜態值編輯 Excel 試算表的整行值
- 使用單個值編輯完整列的 Excel 試算表值
- 編輯全行及動態值
- 替換試算表值
- 從 Excel 工作表中移除列
- 從 Excel 檔案中移除工作表
第一步
1. 使用 IronXL 庫編輯 C# Excel 文件
在本教學中,我們將使用由 IronXL 定義的功能,這是一個 C# Excel 函式庫。 要使用這些功能,您需要首先下載並安裝到您的項目中。(開發免費使用).
您可以选择 下載 IronXL.zip 或閱讀更多並通過以下方式安裝 NuGet 套件頁面.
安裝完成後,我們就開始吧。!
Install-Package IronXL.Excel
如何操作教程
2. 編輯特定單元格的值
首先,我們將探討如何編輯Excel試算表中特定儲存格的值。
為了這個目的,我們導入要修改的 Excel 試算表,然後訪問其工作表。 然後我們可以按照下面所示進行修改。
/**
Import and Edit SpreadSheet
anchor-edit-specific-cell-values
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");//import Excel SpreadSheet
WorkSheet ws = wb.GetWorkSheet("Sheet1");//access specific workshet
ws.Rows [3].Columns [1].Value = "New Value";//access specific cell and modify its value
wb.SaveAs("sample.xlsx");//save changes
}
/**
Import and Edit SpreadSheet
anchor-edit-specific-cell-values
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");//import Excel SpreadSheet
WorkSheet ws = wb.GetWorkSheet("Sheet1");//access specific workshet
ws.Rows [3].Columns [1].Value = "New Value";//access specific cell and modify its value
wb.SaveAs("sample.xlsx");//save changes
}
'''
'''Import and Edit SpreadSheet
'''anchor-edit-specific-cell-values
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
Dim wb As WorkBook = WorkBook.Load("sample.xlsx") 'import Excel SpreadSheet
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1") 'access specific workshet
ws.Rows (3).Columns (1).Value = "New Value" 'access specific cell and modify its value
wb.SaveAs("sample.xlsx") 'save changes
End Sub
Here are before and after screenshots of Excel SpreadSheet sample.xlsx
:
Before After
:---: :-----:
We can see how simple it is to modify the Excel SpreadSheet value.
If needed, there is also an alternative way to edit the specific cell value by cell address:
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" 'alternative way to access specific cell and apply changes
3. 編輯整行值
使用靜態值編輯 Excel 工作表中的整行值非常簡單。
/**
Edit Full Row Values
anchor-edit-full-row-values
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
ws.Rows [3].Value = "New Value";
wb.SaveAs("sample.xlsx");
}
/**
Edit Full Row Values
anchor-edit-full-row-values
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
ws.Rows [3].Value = "New Value";
wb.SaveAs("sample.xlsx");
}
'''
'''Edit Full Row Values
'''anchor-edit-full-row-values
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
ws.Rows (3).Value = "New Value"
wb.SaveAs("sample.xlsx")
End Sub
查看下方的 sample.xlsx
截圖:
之前 後
:---: :-----:
為此,我們還可以使用範圍函數編輯特定行範圍的值:
ws ["A3:E3"].Value = "New Value";
ws ["A3:E3"].Value = "New Value";
ws ("A3:E3").Value = "New Value"
4. 編輯整列值
如上所述,我們可以輕鬆地用單一值編輯Excel試算表的整列值。
/**
Edit Full Column Values
anchor-edit-full-column-values
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
ws.Columns [1].Value = "New Value";
wb.SaveAs("sample.xlsx");
}
/**
Edit Full Column Values
anchor-edit-full-column-values
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
ws.Columns [1].Value = "New Value";
wb.SaveAs("sample.xlsx");
}
'''
'''Edit Full Column Values
'''anchor-edit-full-column-values
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
ws.Columns (1).Value = "New Value"
wb.SaveAs("sample.xlsx")
End Sub
將產生我們的sample.xlsx
試算表,如下:
之前 後
:---: :-----:
5. 使用動態值編輯整行
使用 IronXL,也可以編輯具有動態值的特定行。 這意味著我們可以通過為每個單元格分配動態值來編輯整行。 讓我們看看例子:
/**
Edit Row Dynamic Values
anchor-edit-full-row-with-dynamic-values
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
for (int i = 0; i < ws.Columns.Count(); i++)
{
ws.Rows [3].Columns [i].Value = "New Value "+i.ToString();
}
wb.SaveAs("sample.xlsx");
}
/**
Edit Row Dynamic Values
anchor-edit-full-row-with-dynamic-values
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
for (int i = 0; i < ws.Columns.Count(); i++)
{
ws.Rows [3].Columns [i].Value = "New Value "+i.ToString();
}
wb.SaveAs("sample.xlsx");
}
'''
'''Edit Row Dynamic Values
'''anchor-edit-full-row-with-dynamic-values
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
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
ws.Rows (3).Columns (i).Value = "New Value " & i.ToString()
Next i
wb.SaveAs("sample.xlsx")
End Sub
在下表中,我們看到了從此輸出中的 Excel 試算表 sample.xlsx
的螢幕截圖:
之前 後
:---: :-----:
6. 使用動態值編輯整列
也很容易編輯具有動態值的特定欄位。
/**
Edit Column Dynamic Values
anchor-edit-full-column-with-dynamic-values
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
for (int i = 0; i < ws.Rows.Count(); i++)
{
if (i == 0)//it is for if our first column is used as a header
continue;
ws.Rows [i].Columns [1].Value = "New Value " + i.ToString();
}
wb.SaveAs("sample.xlsx");
}
/**
Edit Column Dynamic Values
anchor-edit-full-column-with-dynamic-values
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
for (int i = 0; i < ws.Rows.Count(); i++)
{
if (i == 0)//it is for if our first column is used as a header
continue;
ws.Rows [i].Columns [1].Value = "New Value " + i.ToString();
}
wb.SaveAs("sample.xlsx");
}
'''
'''Edit Column Dynamic Values
'''anchor-edit-full-column-with-dynamic-values
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
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
If i = 0 Then 'it is for if our first column is used as a header
Continue For
End If
ws.Rows (i).Columns (1).Value = "New Value " & i.ToString()
Next i
wb.SaveAs("sample.xlsx")
End Sub
以下是 sample.xlsx
的表格結果:
之前 後
:---: :-----:
7. 替換試算表的值
如果我們想要在Excel試算表中將任何類型的值替換為更新的值,我們可以使用名為Replace
的函數。 使用此功能,我們可以在任何需要的情形下替換 Excel 試算表的數據。
7.1. 替換工作表中的特定值
要將完整 Excel 工作表中的特定值替換為更新的值,我們只需訪問工作表 ws
(與上述示例相同)並像這樣應用Replace
函數。
/**
Replace Cell Values
anchor-replace-specific-value-of-complete-worksheet
**/
ws.Replace("old value", "new value");
/**
Replace Cell Values
anchor-replace-specific-value-of-complete-worksheet
**/
ws.Replace("old value", "new value");
'''
'''Replace Cell Values
'''anchor-replace-specific-value-of-complete-worksheet
'''*
ws.Replace("old value", "new value")
此功能將在完整的Excel工作表中將old value
替換為new value
。
如上例所示,任何更改後都不要忘記儲存檔案。
7.2 替換特定行的值
如果您只想修改特定的一行,而不是整個工作表的其餘部分,請使用此代碼。
ws.Rows [2].Replace("old value", "new value");
ws.Rows [2].Replace("old value", "new value");
ws.Rows (2).Replace("old value", "new value")
上述代碼僅會在第2
行將old value
替換為new value
。 工作表的其館部分保持不變。
7.3. 替換行範圍的值
我們也可以如下替換特定範圍內的值:
ws ["From Cell Address : To Cell Address"].Replace("old value", "new value");
ws ["From Cell Address : To Cell Address"].Replace("old value", "new value");
ws ("From Cell Address : To Cell Address").Replace("old value", "new value")
假設我們想在第 4
行的範圍從 B4
到 E4
中用新值替換舊值,那麼我們會這樣寫:
ws ["B4:E4"].Replace("old value", "new value");
ws ["B4:E4"].Replace("old value", "new value");
ws ("B4:E4").Replace("old value", "new value")
7.4. 替換特定欄位的值
我們也可以替換特定列的值,而工作表的其他部分保持不變。
ws.Columns [1].Replace("old value", "new Value")
ws.Columns [1].Replace("old value", "new Value")
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'ws.Columns [1].Replace("old value", "new Value")
上述程式碼將僅為第 1
列更換 old value
為 new value
。
7.5. 替換列範圍的值
通过以下方式,我们也可以使用 range 函数来替换特定列范围内的内容。
ws ["B5:B10"].Replace("old value", "new value");
ws ["B5:B10"].Replace("old value", "new value");
ws ("B5:B10").Replace("old value", "new value")
上述程式碼將把 舊值
替換為 新值
,僅在 B 列從 B5
到 B10
的範圍內。
8. 從 Excel 工作表中刪除行
IronXL 提供了一個非常簡單的功能,用於移除 Excel 工作表中的特定行。 讓我們看看這個例子。
/**
Remove Row
anchor-remove-row-from-excel-worksheet
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
ws.Rows [3].RemoveRow();
wb.SaveAs("sample.xlsx");
}
/**
Remove Row
anchor-remove-row-from-excel-worksheet
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
ws.Rows [3].RemoveRow();
wb.SaveAs("sample.xlsx");
}
'''
'''Remove Row
'''anchor-remove-row-from-excel-worksheet
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
ws.Rows (3).RemoveRow()
wb.SaveAs("sample.xlsx")
End Sub
上述代碼將刪除 sample.xlsx
中的第3行,如下表所示:
之前 後
:---: :-----:
9. 從 Excel 檔案中移除工作表
如果我們想要移除 Excel 文件中的完整工作表,可以使用以下方法:
/**
Remove Worksheet from File
anchor-remove-worksheet-from-excel-file
**/
wb.RemoveWorkSheet(1); // by sheet indexing
/**
Remove Worksheet from File
anchor-remove-worksheet-from-excel-file
**/
wb.RemoveWorkSheet(1); // by sheet indexing
'''
'''Remove Worksheet from File
'''anchor-remove-worksheet-from-excel-file
'''*
wb.RemoveWorkSheet(1) ' by sheet indexing
wb
是工作簿,在上述示例中也是相同的。 如果我們想要按名稱刪除工作表,那麼:
wb.RemoveWorkSheet("Sheet1"); //by sheet name
wb.RemoveWorkSheet("Sheet1"); //by sheet name
wb.RemoveWorkSheet("Sheet1") 'by sheet name
IronXL 擁有許多功能,我們可以輕鬆地在 Excel 試算表中進行任何類型的編輯和刪除。 如果您在項目中有任何問題,請聯繫我們的開發團隊。
資料庫快速訪問