C#将一个excel工作表根据指定范围拆分为多个excel文件

C#将一个excel工作表根据指定范围拆分为多个excel文件

微软Excel没有提供直接的方法来拆分excel文件,因此要拆分一个excel文件最简单的方法可能就是手动剪切和粘贴了,除此之外,还有其他方法如VBA及Visual Studio语言(如C#、VB.NET等)编程的方式。VBA我不是很熟悉,因此这篇文章写的是如何使用C# 将一个excel工作表根据指定的范围拆分为多个excel文件。

下面是一个excel人力资源信息表,里面含有三个部门及一些员工信息:

接下来就开始拆分这个excel工作表了,在这个示例中,我将这个表格拆分为三个单独的excel文件,每个excel文件是一个部门的信息。

详细步骤:

使用命名空间:

新建一个visual C#项目,添加引用并使用如下命名空间:

using Spire.Xls;

步骤1创建一个Workbook类的对象,加载源excel文件并获取文件中待拆分的工作表,在该示例中是第一个工作表。

Workbook bookOriginal = new Workbook();
bookOriginal.LoadFromFile("信息表.xlsx");
Worksheet sheet = bookOriginal.Worksheets[0];

步骤2创建一个新的Workbook对象newBook1,并给它添加一个空的工作表。

Workbook newBook1 = new Workbook();
newBook1.CreateEmptySheets(1);

步骤3获取newBook1的第一个工作表,然后获取源excel工作表中第二行至第八行(销售部)的数据,将它们复制到newBook1的第一个工作表。

Worksheet newSheet1 = newBook1.Worksheets[0];
CellRange range1 = sheet.Range[2, 1, 8, sheet.LastColumn];
newSheet1.Copy(range1, newSheet1.Range[1, 1]);

步骤4重复步骤2和步骤3,创建一个新的Workbook对象newbook2,获取源excel工作表中的第九行至第十五行(人力资源部)的数据并将它们复制到newbook2。

Workbook newBook2 = new Workbook();
newBook2.CreateEmptySheets(1);
Worksheet newSheet2 = newBook2.Worksheets[0];
CellRange range2 = sheet.Range[9, 1, 15, sheet.LastColumn];
newSheet2.Copy(range2, newSheet2.Range[1, 1]);

步骤5删除源excel文件中第二行到第十五行的数据,剩下行(研发部)的数据将被保存为另一个新的excel文件。注意这里的14代表的不是行号而是行数。

sheet.DeleteRow(2, 14);

步骤6保存这三个excel文件并以部门的名字命名。

newBook1.SaveToFile("销售部.xlsx", ExcelVersion.Version2007);
newBook2.SaveToFile("人力资源部.xlsx", ExcelVersion.Version2007);
bookOriginal.SaveToFile("研发部.xlsx", ExcelVersion.Version2007);

效果图:

全部代码:

using Spire.Xls;

namespace splitworksheet
{
    class Program
    {
        static void Main(string[] args)
        {
            Workbook bookOriginal = new Workbook();
            bookOriginal.LoadFromFile("信息表.xlsx");
            Worksheet sheet = bookOriginal.Worksheets[0];
            Workbook newBook1 = new Workbook();
            newBook1.CreateEmptySheets(1);
            Worksheet newSheet1 = newBook1.Worksheets[0];
            CellRange range1 = sheet.Range[2, 1, 8, sheet.LastColumn];

            newSheet1.Copy(range1, newSheet1.Range[1, 1]);

            Workbook newBook2 = new Workbook();
            newBook2.CreateEmptySheets(1);
            Worksheet newSheet2 = newBook2.Worksheets[0];
            CellRange range2 = sheet.Range[9, 1, 15, sheet.LastColumn];
            newSheet2.Copy(range2, newSheet2.Range[1, 1]);

            sheet.DeleteRow(2, 14);
            newBook1.SaveToFile("销售部.xlsx", ExcelVersion.Version2007);
            newBook2.SaveToFile("人力资源部.xlsx", ExcelVersion.Version2007);
            bookOriginal.SaveToFile("研发部.xlsx", ExcelVersion.Version2007);
        }
    }
}

总结:

在上面的示例中我使用的是Free Spire.XLS,拆分excel文件是根据指定部门所在的行的范围,除此之外也可以根据部门的名字来拆分,与检索数据并导出到新的excel文档类似,我在之前的文章中已经写过了,如有需要可以参考。

感谢您的观看!

时间: 2024-08-07 01:15:24

C#将一个excel工作表根据指定范围拆分为多个excel文件的相关文章

C# 按指定范围拆分Excel工作表

前面的文章讲述了如何来合并Excel工作表,那本文将接着上篇文章,介绍如何按工作表的指定范围来拆分.原Excel文档如下:C# using Spire.Xls; namespace splitworksheet { class Program { static void Main(string[] args) { //创建一个Workbook类对象,并加载Excel工作表,并获取第一张工作表 Workbook bookOriginal = new Workbook(); bookOriginal

Excel工作表之SQL查询方法

[转载]Excel工作表之SQL查询方法 来源:http://blog.csdn.net/zhanghongju/article/details/8428458 近期在单位上做业务数据分析,发现还是Excel用的直接,筛选.求和.分类等等也是不亦乐乎,但是发现一些函数的效率与SQL还是有着较大差距,甚至是天壤之别,故作文一篇,提供Excel中的SQL查询使用方式. 查询的工作表可以是当前工作簿中的,也可以是其他工作簿中的.例如,图1所示的“网站数据.xlsx”工作簿中,Sheet1表格存储的是网

C# 如何合并Excel工作表

合并文档能有效的简化繁杂的文档管理.在工作中,当我们遇到需要将多个Excel工作表合并为一个工作表的时候,该怎么来合并呢,本文将进一步介绍.使用工具:Free Spire.XLS for .NET.Visual Studio 2013PS: 编辑代码前需要添加引用Spire.XLS.dll到项目程序中,并添加到命名空间合并Excel表格分两种,一是合并多个工作薄中的工作表到一个工作表:二是合并一个工作簿中的多个工作表为一个工作表 一.从多个工作簿合并 using Spire.Xls; names

EXCEL工作表保护密码破解方式

Excel工作表密码保护的解除方法 Excel弹出"您试图更改的单元格或图表受保护,因而是只读的.若要修改受保护单元格或图表,请先使用'撤消工作表保护'命令(在'审阅'选项卡的'更改'组中)来取消保护.可能会提示您输入密码. 出现这种情况,应该怎么解决呢?经过研究,找到了两种破解Excel工作表保护码的方法. 一.VBA宏代码破解法: 第一步:打开该文件 第二步:按Alt+F11,进入VBA编辑界面: 第三步:插入一个Module: 第四步:在右边Module的空白编辑区域,复制粘贴下面的所有内

破解Excel工作表密码

1.在VBA中使用以下方法,即可破解Excel工作表密码. (1)在Excel文档中,选择"视图"选项卡,选择"宏",录制宏,然后停止录制. (2)然后,按Alt + f11,调出VBA界面,发现有一个模块1,下面就是刚才录制宏的方法,把下面的代码Copy进去,替换掉,最后点工具栏的绿色三角形,执行方法,即可破解Excel工作表的密码. Public Sub AllInternalPasswords()' Breaks worksheet and workbook

C# 原样复制excel工作表

在excel中,工作表是工作薄的组成部分,一个工作薄可以由一个或多个工作表组成,一个工作薄也可以说是一个excel文档,正因为如此,excel工作表的复制也就分为两种类型:在同一文档之内复制和在不同文档之间复制.本文主要介绍如何用C#在同一文档内或不同文档间原样复制excel工作表(包括数据.图片和格式等),希望能对有同样问题的朋友有些许帮助(如果有不清楚的地方,可以参考教程). 第一步:新建一个控制台项目并添加引用和命名空间. using Spire.Xls; 第二步:新建一个workbook

使用宏命令撤销EXCEL工作表保护

EXCEL工作表编辑资料,设置了工作表保护后,不能对表格进行插入删除操作.如果没有密码,很简单:工具-选项—工作表保护——撤消工作表保护 就可以了.如果忘记密码,如下操作: 1. 打开文件 2. 工具---宏----录制新宏---输入名字如:a 3. 停止录制(这样得到一个空宏) 4. 工具---宏----宏,选a,点编辑按钮 5. 删除窗口中的所有字符(只有几个),替换为下面的内容:(复制下来) Option ExplicitPublic Sub AllInternalPasswords()

excel工作表密码破解方法

在日常工作中,大家有时会遇到过这样的情况:使用Excel编制的报表.表格.程序等,在单元格中设置了公式.函数等,为了防止其他人修改您的设置或者防止您自己无意中修改,您可能会使用Excel的工作表保护功能,但时间久了保护密码容易忘记,这该怎么办?有时您从网上下载的Excel格式的小程序,您想修改,但是作者加了工作表保护密码,怎么办?您只要按照以下步骤操作,Excel工作表保护密码瞬间(稍微有点夸张)即破! 步骤阅读 百度经验:jingyan.baidu.com 工具/原料 待破解的Excel工作表

Office 2016 - 下载、安装、激活后,右键新建菜单中,出现 Micorosoft Excel 97-2003 工作表,而不是 Micorosoft Excel 工作表、以及对新建菜单项位置做调整

安装激活 Office 2016 后,新建菜单项如下: 首先,需要做的是把右键新建菜单项中的 Micorosoft Excel 09-2003 工作表去除(保存格式是 .xls),替换为 Micorosoft Excel 工作表(Excel 2016 的默认格式 .xlsx) 其次,对新建菜单项的排列顺序做调整,额,把 Micorosoft Excel 工作表 移至 Micorosoft Word 文档下面. 调整后样式: