C#操作Excel工作表(添加、删除、复制、移动、重命名)的完整指南

 更新时间:2025年09月22日 09:28:36   作者:Eiceblue  
在日常开发中,我们经常需要对 Excel 文件进行各种操作,本文演示如何在 同一个工作簿内 完成多种工作表管理操作,包括添加,删除,复制,移动,重命名以及移动工作表,感兴趣的小伙伴可以了解下

在日常开发中,我们经常需要对 Excel 文件进行各种操作,而不仅仅是写入或读取数据。比如在处理报表时,可能需要 添加新的工作表、删除不需要的表、复制或移动表格内容,甚至对工作表进行重命名和调整顺序。掌握这些操作能让你的 Excel 文件更加灵活,结构更清晰。

本文演示如何在 同一个工作簿内 完成多种工作表管理操作,包括添加、删除、复制、移动、重命名以及移动工作表。所有操作都基于同一个示例文件,便于截图展示效果。

本文使用免费的 Free Spire.XLS for .NET,可通过 NuGet 安装:

Install-Package FreeSpire.XLS

1. 初始化工作簿

新建的 Workbook 默认包含三个工作表(Sheet1、Sheet2、Sheet3)。我们从这里开始操作。

using Spire.Xls;
using System.Drawing;

Workbook workbook = new Workbook();
Worksheet sheet1 = workbook.Worksheets[0];
sheet1.Name = "默认工作表1";
sheet1.Range["A1"].Text = "这是第一个默认工作表";

说明

  • Workbook 类表示 Excel 文件。
  • Worksheets 集合存放了该工作簿中的所有工作表。
  • 默认就有三个工作表,不需要手动添加。

2. 添加工作表

可以通过 Worksheets.Add() 方法添加新的工作表。

Worksheet newSheet = workbook.Worksheets.Add("新增工作表");
newSheet.Range["A1"].Text = "这是新建的工作表";

应用场景

  • 在现有报表中扩展新的数据区。
  • 生成临时的计算表或结果表。

3. 删除工作表

如果不需要某个工作表,可以直接删除。这里我们删除第三个默认工作表(Sheet3)。

workbook.Worksheets[2].Remove();  // 删除第三个默认工作表

说明:删除后,工作簿中的工作表总数会减少,后续的索引也会自动调整。

4. 复制工作表

复制一个已有的工作表到新的位置。这里我们复制第一个工作表。

Worksheet copiedSheet = workbook.Worksheets.Add("复制的表");
copiedSheet.CopyFrom(sheet1);
copiedSheet.Range["A2"].Text = "这是复制自第一个工作表的副本";

场景

  • 保留原始表的同时,生成一个副本用于实验或修改。
  • 避免重复手动设置表格格式。

5. 移动工作表

可以改变工作表在工作簿中的顺序。这里把“新增工作表”移动到第一个位置。

Worksheet sheetToMove = workbook.Worksheets["新增工作表"];
sheetToMove.MoveWorksheet(0);  // 移动到第一个位置

说明MoveWorksheet() 方法允许把指定的表移动到目标索引位置。索引从 0 开始。

6. 重命名工作表

工作表命名在报表管理中非常重要,合理命名有助于区分内容。这里我们把第二个工作表改名为“销售数据”。

workbook.Worksheets[2].Name = "销售数据";
workbook.Worksheets[2].Range["A1"].Text = "这里是销售数据表";

场景:将默认的 “Sheet1”、“Sheet2” 改为业务相关的名称,如“财务报表”、“年度统计”。

7. 复制内容到其他工作表

除了移动整个工作表,也可以将某些单元格区域复制或移动到其他表。这里我们将“销售数据”的 A2:C3 区域复制到“复制数据工作表”的 A2 开始的区域。

Worksheet source = workbook.Worksheets["销售数据"];
Worksheet target = workbook.Worksheets.Add("复制数据工作表");
target.Range["A1"].Text = "这是用于复制数据的工作表";

// 在源表中填充一些示例数据
source.Range["A2"].Text = "产品";
source.Range["B2"].Text = "数量";
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 区域复制到目标表的 A1
source.Range["A2:C3"].Copy(target.Range["A2"]);

说明

  • 使用 Copy() 可以将区域内容(包括数据与格式)复制到另一个表。
  • 适合拆分数据或汇总数据时使用。

8. 将工作表复制到其他工作簿

有时我们需要将某个工作表从当前工作簿转移到另一个文件中,便于拆分数据或单独保存。下面演示如何把“销售数据”工作表复制到新的工作簿,并保存为单独文件。

// 获取要复制的工作表
Worksheet sheetToCopy = workbook.Worksheets["销售数据"];

// 新建一个目标工作簿
Workbook newWorkbook = new Workbook();

// 清空默认生成的工作表,避免混乱
newWorkbook.Worksheets.Clear();

// 在新工作簿中添加并复制工作表
Worksheet newSheet1 = newWorkbook.Worksheets.Add("销售数据副本");
newSheet1.CopyFrom(sheetToCopy);

// 删除原工作表即可完成移动
//sheetToCopy.Remove();

说明

  • newWorkbook.Worksheets.Clear() 用于清空新建工作簿中默认的三个工作表。
  • CopyFrom() 可以完整复制源表的数据和格式。
  • 删除原工作表即可完成移动操作工作表到新工作簿的操作。

9. 保存文件

最后,将工作簿保存为 Excel 文件以便查看结果。

workbook.SaveToFile("工作表操作示例.xlsx", ExcelVersion.Version2016);
newWorkbook.SaveToFile("复制到新工作簿示例.xlsx", ExcelVersion.Version2016);

生成的文件中包含:

  • 已新增、复制和重命名的工作表;
  • 删除了一个不需要的默认表;
  • 调整了工作表顺序;
  • 复制了部分单元格到其他工作表。

生成的 Excel 工作簿预览:

复制的新工作簿预览:

10. 关键方法总结

操作类型方法/属性说明
添加表Worksheets.Add("name")新建一个工作表
删除表Worksheets[index].Remove()删除指定索引的工作表
复制表copiedSheet.CopyFrom(sourceSheet)将现有工作表复制到新表
移动表Worksheet.MoveWorksheet(positionIndex)调整工作表在工作簿中的顺序
重命名表Worksheet.Name设置或获取工作表的名称
移动单元格sourceRange.Copy(targetRange)将指定单元格区域复制到其他表

通过以上操作,你已经可以灵活地用 C# 操作 Excel 工作簿中的工作表。这些操作在日常文档管理和自动化处理中非常实用,能让 Excel 文件的组织更加清晰高效。

到此这篇关于C#操作Excel工作表(添加、删除、复制、移动、重命名)的完整指南的文章就介绍到这了,更多相关C#操作Excel工作表内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#观察者模式(Observer Pattern)实例教程

    C#观察者模式(Observer Pattern)实例教程

    这篇文章主要介绍了C#观察者模式(Observer Pattern),主要以一个实例的形式讲述了C#观察者模式的实现过程,详细讲述了接口的定义、通知及动作的实现方法,需要的朋友可以参考下
    2014-09-09
  • C# System.Net.IPAddress的使用小结

    C# System.Net.IPAddress的使用小结

    本文全面解析C#中System.Net.IPAddress类,包括IP地址解析、转换、私有地址检测、子网判断及CIDR处理,具有一定的参考价值,感兴趣的可以了解一下
    2025-07-07
  • C# XML中的转义字符操作

    C# XML中的转义字符操作

    这篇文章主要介绍了C# XML中的转义字符操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • WPF实现轮播图效果(图片、视屏)

    WPF实现轮播图效果(图片、视屏)

    这篇文章主要介绍了WPF实现轮播图效果,以下是一个使用WPF技术实现图片和视屏轮播的简单案例代码示例,文中有详细的代码示例,具有一定的参考价值,感兴趣的小伙伴可以自己动手试试
    2023-10-10
  • 使用C# 的webBrowser写模拟器时的javascript脚本调用问题

    使用C# 的webBrowser写模拟器时的javascript脚本调用问题

    这篇文章主要介绍了C# 的webBrowser写模拟器时的javascript脚本调用问题,需要的朋友可以参考下
    2017-07-07
  • 利用C#实现在Word中更改字体颜色

    利用C#实现在Word中更改字体颜色

    在日常工作中,我们有时会需要修改字体的颜色来突出文本重点,让读者更容易抓住文章要点。在今天这篇文章中,我将为大家介绍如何以编程方式,在Word更改字体颜色,感兴趣的可以了解一下
    2023-02-02
  • 深入多线程之:Wait与Pulse的使用详解

    深入多线程之:Wait与Pulse的使用详解

    本篇文章是对Wait与Pulse的使用进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • c# DataDirectory的用法

    c# DataDirectory的用法

    这篇文章主要介绍了c# DataDirectory的用法,帮助大家更好的理解和学习c#,感兴趣的朋友可以了解下
    2020-08-08
  • C#使用Socket实现局域网聊天

    C#使用Socket实现局域网聊天

    这篇文章主要为大家详细介绍了C#使用Socket实现局域网聊天的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • C#基础之匿名方法实例教程

    C#基础之匿名方法实例教程

    这篇文章主要介绍了C#的匿名方法,包括匿名方法的定义以及常用方法,并以示例形式说明其用法,需要的朋友可以参考下
    2014-09-09

最新评论