C#拆分Excel工作表
程序员文章站
2022-03-29 13:13:31
...
对于庞大的数据表格里面的内容,若是想要将一个工作表中的部分数据单独拆分并保存为一个新的工作表,该怎么来实现呢?下面的文章中将提供实现的方法。该方法中使用了组件Spire.XLS for .NET ,在进行代码操作前,需要安装该组件,并添加引用该组件的dll文件到该项目程序中。详细内容可参考以下内容。本文转载自http://www.cnblogs.com/Yesi/p/5213624.html
原Excel文件如下:
下面,将根据不同的部门将该表格拆分为三个不同的Excel工作表
using Spire.Xls; namespace splitworksheet { class Program { static void Main(string[] args) { //初始化一个Workbook类对象并加载需要拆分的工作表文件 Workbook bookOriginal = new Workbook(); bookOriginal.LoadFromFile("信息表.xlsx"); //获取工作簿中第一个工作表 Worksheet sheet = bookOriginal.Worksheets[0]; //新建一个Workbook类对象并给它添加一个空的工作表。 Workbook newBook1 = new Workbook(); newBook1.CreateEmptySheets(1); //获取newBook1的第一个工作表,然后获取源excel工作表中第二行至第八行(销售部)的数据,将它们复制到newBook1的第一个工作表。 Worksheet newSheet1 = newBook1.Worksheets[0]; CellRange range1 = sheet.Range[2, 1, 8, sheet.LastColumn]; newSheet1.Copy(range1, newSheet1.Range[1, 1]); //创建一个新的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]); //删除源excel文件中第二行到第十五行的数据,剩下行(研发部)的数据将被保存为另一个新的excel文件。注意这里的14代表的不是行号而是行数。 sheet.DeleteRow(2, 14); //保存这三个excel文件并以部门的名字命名 newBook1.SaveToFile("销售部.xlsx", ExcelVersion.Version2007); newBook2.SaveToFile("人力资源部.xlsx", ExcelVersion.Version2007); bookOriginal.SaveToFile("研发部.xlsx", ExcelVersion.Version2007); } } }
拆分后的文档如下所示: