C#操作Excel工作表(添加、刪除、復(fù)制、移動(dòng)、重命名)的完整指南
在日常開發(fā)中,我們經(jīng)常需要對(duì) Excel 文件進(jìn)行各種操作,而不僅僅是寫入或讀取數(shù)據(jù)。比如在處理報(bào)表時(shí),可能需要 添加新的工作表、刪除不需要的表、復(fù)制或移動(dòng)表格內(nèi)容,甚至對(duì)工作表進(jìn)行重命名和調(diào)整順序。掌握這些操作能讓你的 Excel 文件更加靈活,結(jié)構(gòu)更清晰。
本文演示如何在 同一個(gè)工作簿內(nèi) 完成多種工作表管理操作,包括添加、刪除、復(fù)制、移動(dòng)、重命名以及移動(dòng)工作表。所有操作都基于同一個(gè)示例文件,便于截圖展示效果。
本文使用免費(fèi)的 Free Spire.XLS for .NET,可通過 NuGet 安裝:
Install-Package FreeSpire.XLS
1. 初始化工作簿
新建的 Workbook 默認(rèn)包含三個(gè)工作表(Sheet1、Sheet2、Sheet3)。我們從這里開始操作。
using Spire.Xls; using System.Drawing; Workbook workbook = new Workbook(); Worksheet sheet1 = workbook.Worksheets[0]; sheet1.Name = "默認(rèn)工作表1"; sheet1.Range["A1"].Text = "這是第一個(gè)默認(rèn)工作表";
說明:
Workbook類表示 Excel 文件。Worksheets集合存放了該工作簿中的所有工作表。- 默認(rèn)就有三個(gè)工作表,不需要手動(dòng)添加。
2. 添加工作表
可以通過 Worksheets.Add() 方法添加新的工作表。
Worksheet newSheet = workbook.Worksheets.Add("新增工作表");
newSheet.Range["A1"].Text = "這是新建的工作表";
應(yīng)用場景:
- 在現(xiàn)有報(bào)表中擴(kuò)展新的數(shù)據(jù)區(qū)。
- 生成臨時(shí)的計(jì)算表或結(jié)果表。
3. 刪除工作表
如果不需要某個(gè)工作表,可以直接刪除。這里我們刪除第三個(gè)默認(rèn)工作表(Sheet3)。
workbook.Worksheets[2].Remove(); // 刪除第三個(gè)默認(rèn)工作表
說明:刪除后,工作簿中的工作表總數(shù)會(huì)減少,后續(xù)的索引也會(huì)自動(dòng)調(diào)整。
4. 復(fù)制工作表
復(fù)制一個(gè)已有的工作表到新的位置。這里我們復(fù)制第一個(gè)工作表。
Worksheet copiedSheet = workbook.Worksheets.Add("復(fù)制的表");
copiedSheet.CopyFrom(sheet1);
copiedSheet.Range["A2"].Text = "這是復(fù)制自第一個(gè)工作表的副本";
場景:
- 保留原始表的同時(shí),生成一個(gè)副本用于實(shí)驗(yàn)或修改。
- 避免重復(fù)手動(dòng)設(shè)置表格格式。
5. 移動(dòng)工作表
可以改變工作表在工作簿中的順序。這里把“新增工作表”移動(dòng)到第一個(gè)位置。
Worksheet sheetToMove = workbook.Worksheets["新增工作表"]; sheetToMove.MoveWorksheet(0); // 移動(dòng)到第一個(gè)位置
說明:MoveWorksheet() 方法允許把指定的表移動(dòng)到目標(biāo)索引位置。索引從 0 開始。
6. 重命名工作表
工作表命名在報(bào)表管理中非常重要,合理命名有助于區(qū)分內(nèi)容。這里我們把第二個(gè)工作表改名為“銷售數(shù)據(jù)”。
workbook.Worksheets[2].Name = "銷售數(shù)據(jù)"; workbook.Worksheets[2].Range["A1"].Text = "這里是銷售數(shù)據(jù)表";
場景:將默認(rèn)的 “Sheet1”、“Sheet2” 改為業(yè)務(wù)相關(guān)的名稱,如“財(cái)務(wù)報(bào)表”、“年度統(tǒng)計(jì)”。
7. 復(fù)制內(nèi)容到其他工作表
除了移動(dòng)整個(gè)工作表,也可以將某些單元格區(qū)域復(fù)制或移動(dòng)到其他表。這里我們將“銷售數(shù)據(jù)”的 A2:C3 區(qū)域復(fù)制到“復(fù)制數(shù)據(jù)工作表”的 A2 開始的區(qū)域。
Worksheet source = workbook.Worksheets["銷售數(shù)據(jù)"];
Worksheet target = workbook.Worksheets.Add("復(fù)制數(shù)據(jù)工作表");
target.Range["A1"].Text = "這是用于復(fù)制數(shù)據(jù)的工作表";
// 在源表中填充一些示例數(shù)據(jù)
source.Range["A2"].Text = "產(chǎn)品";
source.Range["B2"].Text = "數(shù)量";
source.Range["C2"].Text = "金額";
source.Range["A3"].Text = "電腦";
source.Range["B3"].NumberValue = 10;
source.Range["C3"].NumberValue = 50000;
source.Range["A2:C3"].Style.Color = Color.LightGray;
// 將源表的 A1:C2 區(qū)域復(fù)制到目標(biāo)表的 A1
source.Range["A2:C3"].Copy(target.Range["A2"]);
說明:
- 使用
Copy()可以將區(qū)域內(nèi)容(包括數(shù)據(jù)與格式)復(fù)制到另一個(gè)表。 - 適合拆分?jǐn)?shù)據(jù)或匯總數(shù)據(jù)時(shí)使用。
8. 將工作表復(fù)制到其他工作簿
有時(shí)我們需要將某個(gè)工作表從當(dāng)前工作簿轉(zhuǎn)移到另一個(gè)文件中,便于拆分?jǐn)?shù)據(jù)或單獨(dú)保存。下面演示如何把“銷售數(shù)據(jù)”工作表復(fù)制到新的工作簿,并保存為單獨(dú)文件。
// 獲取要復(fù)制的工作表
Worksheet sheetToCopy = workbook.Worksheets["銷售數(shù)據(jù)"];
// 新建一個(gè)目標(biāo)工作簿
Workbook newWorkbook = new Workbook();
// 清空默認(rèn)生成的工作表,避免混亂
newWorkbook.Worksheets.Clear();
// 在新工作簿中添加并復(fù)制工作表
Worksheet newSheet1 = newWorkbook.Worksheets.Add("銷售數(shù)據(jù)副本");
newSheet1.CopyFrom(sheetToCopy);
// 刪除原工作表即可完成移動(dòng)
//sheetToCopy.Remove();
說明:
newWorkbook.Worksheets.Clear()用于清空新建工作簿中默認(rèn)的三個(gè)工作表。CopyFrom()可以完整復(fù)制源表的數(shù)據(jù)和格式。- 刪除原工作表即可完成移動(dòng)操作工作表到新工作簿的操作。
9. 保存文件
最后,將工作簿保存為 Excel 文件以便查看結(jié)果。
workbook.SaveToFile("工作表操作示例.xlsx", ExcelVersion.Version2016);
newWorkbook.SaveToFile("復(fù)制到新工作簿示例.xlsx", ExcelVersion.Version2016);
生成的文件中包含:
- 已新增、復(fù)制和重命名的工作表;
- 刪除了一個(gè)不需要的默認(rèn)表;
- 調(diào)整了工作表順序;
- 復(fù)制了部分單元格到其他工作表。
生成的 Excel 工作簿預(yù)覽:

復(fù)制的新工作簿預(yù)覽:

10. 關(guān)鍵方法總結(jié)
| 操作類型 | 方法/屬性 | 說明 |
|---|---|---|
| 添加表 | Worksheets.Add("name") | 新建一個(gè)工作表 |
| 刪除表 | Worksheets[index].Remove() | 刪除指定索引的工作表 |
| 復(fù)制表 | copiedSheet.CopyFrom(sourceSheet) | 將現(xiàn)有工作表復(fù)制到新表 |
| 移動(dòng)表 | Worksheet.MoveWorksheet(positionIndex) | 調(diào)整工作表在工作簿中的順序 |
| 重命名表 | Worksheet.Name | 設(shè)置或獲取工作表的名稱 |
| 移動(dòng)單元格 | sourceRange.Copy(targetRange) | 將指定單元格區(qū)域復(fù)制到其他表 |
通過以上操作,你已經(jīng)可以靈活地用 C# 操作 Excel 工作簿中的工作表。這些操作在日常文檔管理和自動(dòng)化處理中非常實(shí)用,能讓 Excel 文件的組織更加清晰高效。
到此這篇關(guān)于C#操作Excel工作表(添加、刪除、復(fù)制、移動(dòng)、重命名)的完整指南的文章就介紹到這了,更多相關(guān)C#操作Excel工作表內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#使用PDFium實(shí)現(xiàn)預(yù)覽PDF文件
這篇文章主要為大家詳細(xì)介紹了C#如何使用PDFium實(shí)現(xiàn)預(yù)覽PDF文件,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-10-10
WPF實(shí)現(xiàn)平面三角形3D運(yùn)動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了WPF實(shí)現(xiàn)平面三角形3D運(yùn)動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-09-09
基于C#實(shí)現(xiàn)WinForm開發(fā)操作系統(tǒng)的文件管理系統(tǒng)代碼
基于C#的WinForm應(yīng)用程序來模擬操作系統(tǒng)文件管理系統(tǒng),可以幫助用戶在Windows環(huán)境下進(jìn)行文件的創(chuàng)建、移動(dòng)、刪除與搜索等操作,這種模擬工具有助于學(xué)習(xí)文件系統(tǒng)的工作原理以及測試和開發(fā)其他軟件項(xiàng)目2024-12-12
C#?Winform消息通知之系統(tǒng)本地通知local?toast?notification
這篇文章主要為大家介紹了C#?Winform消息通知之系統(tǒng)本地通知local?toast?notification使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08
WinForm IP地址輸入框控件實(shí)現(xiàn)
這篇文章主要為大家詳細(xì)介紹了WinForm IP地址輸入框控件的實(shí)現(xiàn)代碼,基于VS2010模擬windows系統(tǒng)自帶IP輸入框,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05
服務(wù)器端C#實(shí)現(xiàn)的CSS解析器
服務(wù)器端C#實(shí)現(xiàn)的CSS解析器2008-09-09

