• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C#:利用Spire.Xls拆分Excel的Sheet页

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

当大家用Excel处理大批量数据时,可能会遇到需要拆分一个Sheet页为多个Excel或者多个Sheet页的情况。

下面提供一个本人使用Spire.Xls组件拆分Excel指定Sheet页的案例。

代码中需要指定你需要拆分的区域,如有需要,可以提前计算好,然后循环调用,即可以将指定Sheet拆分为多个Excel文件。

 1  /// <summary>
 2         /// 拆分Sheet页
 3         /// </summary>
 4         /// <param name="fileName">文件名称</param>
 5         /// <param name="sheetIndex">sheet索引,从0开始</param>
 6         /// <param name="rangeStr">拆分起始区域</param>
 7         private static string SplitSheetColumns(string fileName, int sheetIndex, string rangeStr)
 8         {
 9             string BasePath = System.Windows.Forms.Application.StartupPath;
10             string saveFile = string.Empty;
11 
12             using (Spire.Xls.Workbook bookReourse = new Spire.Xls.Workbook())
13             {
14                 bookReourse.LoadFromFile(fileName);
15                 Spire.Xls.Worksheet sheetSourse = bookReourse.Worksheets[sheetIndex];
16 
17                 int totalRowCount = sheetSourse.Rows.Count();
18                 using (Spire.Xls.Workbook newBook = new Spire.Xls.Workbook())
19                 {
20                     newBook.LoadFromFile(BasePath + "\\Templates\\XXX_Tmplate_New.xls");  //这里需要提供一个空模板,以便拆分后进行填充,或者带列头的模板的也可以。
21 
22                     Spire.Xls.Worksheet newSheet1 = newBook.Worksheets[0];
23 
24                     CellRange range2 = sheetSourse.Range[rangeStr];
25 
26                     //foreach (var item in range2)
27                     //{
28                     //    if (String.IsNullOrWhiteSpace(item.Value.ToString()))
29                     //    {
30                     //        item.Value = "0";   //如果有空值就转换为0
31                     //    }
32                     //}
33 
34                     //这里指定需要读取原Excel文件的区域,例如:A1:B3
35                     sheetSourse.Copy(range2, newSheet1.Range["A3:IU" + totalRowCount]);
36 
37                     //得到新的临时文件名
38                     string tmpName = "new_" + DateTime.Now.ToString("hhmmss") + ".xlsx";
39 
40                     if (!Directory.Exists(BasePath + "\\TempExcelFile"))
41                     {
42                         Directory.CreateDirectory(BasePath + "\\TempExcelFile");
43                     }
44 
45                     saveFile = BasePath + "\\TempExcelFile\\" + tmpName;
46 
47                     if (File.Exists(saveFile)) File.Delete(saveFile);
48 
49                     //保存Excel
50                     newBook.SaveToFile(saveFile, Spire.Xls.ExcelVersion.Version2010);
51                 }
52             }
53             return saveFile;
54         }

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
(原创)无废话C#设计模式之十二:Bridge发布时间:2022-07-10
下一篇:
C# 抓取网页内容(转)发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap