近期有对Excel操作的需求,由于都是重复劳动,故分享代码如下,本人也是技术菜鸟没有考虑性能,如果有大牛能够指教就再好不过了

事先电脑中需要安装Excel,然后Vs中引用Microsoft.Office.Interop.Excel;

使用下方代码前请加上using Excel = Microsoft.Office.Interop.Excel;

同名Excel放入同一文件夹中

前提:同种类型Excel文件名的格式都是:A(1)、A(2)这种。

利用正则表达式来分组,代码如下:

 1 /// <summary>
2 /// 将同名Excel分组
3 /// </summary>
4 void MoveFile()
5 {
6 //改为你自己的路径
7 string path = @"C:\Users\Reasonable\Desktop\table";
8 DirectoryInfo root = new DirectoryInfo(path);
9 FileInfo[] files = root.GetFiles();
10
11 Regex fileRegex = new Regex(@".+(?=\()");
12
13 foreach (var file in files)
14 {
15 var fileName = fileRegex.Match(file.Name).ToString();
16
17 var targetPath = $@"{path}\{fileName}";
18
19 //以文件名创建子目录
20 if (!Directory.Exists(targetPath))
21 {
22 Directory.CreateDirectory(targetPath);
23 }
24
25 file.MoveTo(Path.Combine(targetPath, file.Name));
26 }
27
28 Console.Read();
29 }
30 }

同一文件夹内Excel合并为同一个

前提:由于事先执行了上方分组代码,所以根目录下是没有文件的,如果有需求请自行修改。

最初我是用Excel的宏操作的,但是需要一个个运行,太繁琐,于是还是改为使用C#自动跑。

 1 /// <summary>
2 /// 多个excel合并
3 /// </summary>
4 void MergeExcel()
5 {
6 //改为你自己的路径
7 string path = @"C:\Users\Reasonable\Desktop\table";
8 DirectoryInfo root = new DirectoryInfo(path);
9 //获取所有子目录
10 var dires = root.GetDirectories();
11 foreach (var dir in dires)
12 {
13 Excel.Application app = new Excel.Application();
14 Excel._Workbook result = app.Workbooks.Add();
15 //获取子目录的文件
16 FileInfo[] files = dir.GetFiles();
17
18 foreach (var file in files)
19 {
20 Excel._Workbook wb1 = app.Workbooks.Open(Path.GetFullPath(file.FullName));
21 foreach (Excel._Worksheet each in wb1.Sheets)
22 {
23 each.Copy(result.Worksheets[1]);
24 }
25 wb1.Close();
26 }
27 result.SaveAs($@"{dir.FullName}\new.xlsx");
28 app.Quit();
29 }
30 }

【C#操作Excel】同名Excel放入同一文件夹中,然后合并为同一个Excel文件的更多相关文章

  1. [R语言]读取文件夹下所有子文件夹中的excel文件,并根据分类合并。

    解决的问题:需要读取某个大文件夹下所有子文件夹中的excel文件,并汇总,汇总文件中需要包含的2部分的信息:1.该条数据来源于哪个子文件夹:2.该条数据来源于哪个excel文件.最终,按照子文件夹单独 ...

  2. 键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:"java","txt")作为key, 用个数作为value,放入到map集合中,遍历map集合

    package cn.it.zuoye5; import java.io.File;import java.util.HashMap;import java.util.Iterator;import ...

  3. 【集中工作薄】 当前文件夹中所有Excel文件中 多个工作簿的第一个工作表 复制到工作簿中

    功能:当前文件夹中所有Excel文件中 多个工作簿的第一个工作表 复制到工作簿中 Sub Books2Sheets() '定义对话框变量 Dim fd As FileDialog Set fd = A ...

  4. 有些其他程序设置为从 Outlook 下载并删除邮件。为防止发生此意外情况,我们将这些邮件放入一个特殊的 POP 文件夹中

    最近使用FOXMAIL接收MSN邮件时,发现有一些邮件收取不到,进到WEB页面,页面下方提示“你的邮件位于 POP 文件夹中!有些其他程序设置为从 Outlook 下载并删除邮件.为防止发生此意外情况 ...

  5. python操作txt文件中数据教程[3]-python读取文件夹中所有txt文件并将数据转为csv文件

    python操作txt文件中数据教程[3]-python读取文件夹中所有txt文件并将数据转为csv文件 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 python操作txt文件中 ...

  6. 在存放源程序的文件夹中建立一个子文件夹 myPackage。例如,在“D:\java”文件夹之中创建一个与包同名的子文件夹 myPackage(D:\java\myPackage)。在 myPackage 包中创建一个YMD类,该类具有计算今年的年份、可以输出一个带有年月日的字符串的功能。设计程序SY31.java,给定某人姓名和出生日期,计算该人年龄,并输出该人姓名、年龄、出生日期。程序使用YM

    题目补充: 在存放源程序的文件夹中建立一个子文件夹 myPackage.例如,在“D:\java”文件夹之中创建一个与包同名的子文件夹 myPackage(D:\java\myPackage).在 m ...

  7. 从加载DLL的中获取放置于Resources文件夹中资源字典的几种方法

    原文:从加载DLL的中获取放置于Resources文件夹中资源字典的几种方法 主程序 为 Main_Test.exe 被加载的DLL 为 Load_Test.dll  此DLL 中 有一个 文件夹Re ...

  8. winfrom保存图片,将文件夹中图片放入listview,与撤回操作

    之前那些操作完成对图片的修改之后,就是要保存图片了. 这里保存用到一个SaveFileDialog控件,可以获取用户选择的保存文件的路径. ) { SaveFileDialog saveImageDi ...

  9. 自定义的类型放入STL的set中,需要重载自定义类中的“<”符号(转)

    在以前学习STL的时候,曾经学到过,如果要将自定义的类型放入到set中的话,就需要重载“<”符号,原因是set是一个有序的集合,集合会按照“<”比较的大小,默认按照从小到大的顺序排列.假设 ...

随机推荐

  1. Linux配置 ftp 和 ftp简单介绍

    一.ftp概念? /* ftp是一个协议和http协议都是叫协议 tcp和udp也是协议 ftp是文件(以流的形式进行传输)传输协议(针对于文件进行上传和下载) */ 1.如果ftp服务器有多台,服务 ...

  2. mybatis 原生写法创建项目

    一.创建全局文件 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuratio ...

  3. django入门 03 模板语法

    变量值从views.py传入html 基本语法 {{ abc }} 变量abc外,用双大括号包裹 {% for item in abc %} 语句外,用大括号+百分号包裹 1. 传递字符串 views ...

  4. 【Android珍藏】推荐10个炫酷的开源库【转】

    感谢大佬:https://www.jianshu.com/p/d608f0228fd4 前言 技术群里面经常有人问到一些炫酷的UI效果实现方法,有时候我都是给一个相同或者相似效果的Github链接,有 ...

  5. JVM学习九-(复习)HotSpot 垃圾收集器

    HotSpot 虚拟机提供了多种垃圾收集器,每种收集器都有各自的特点,虽然我们要对各个收集器进行比较,但并非为了挑选出一个最好的收集器.我们选择的只是对具体应用最合适的收集器. 新生代垃圾收集器 Se ...

  6. Media Player播放

    转载请注明来源:https://www.cnblogs.com/hookjc/ <object id="player" height="64" width ...

  7. java run()方法无法throws 异常

    感谢大佬:https://blog.csdn.net/z_ssyy/article/details/95345205 其实原因很简单,run()方法是我们调用start()方法后,jvm再去调用run ...

  8. 痞子衡嵌入式:i.MXRT连接特殊Octal Flash时(OPI DTR模式下反转字节序)下载与启动注意事项(以MX25UM51245为例)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是OPI DTR模式下反转字节序的Octal Flash在i.MXRT下载与启动注意事项. 在恩智浦官方参考设计板 MIMXRT595-E ...

  9. kubeadm部署安装+dashboard+harbor

    kubeadm 部署安装+dashboard+harbor master(2C/4G,cpu核心数要求大于2) 192.168.80.10 docker.kubeadm.kubelet.kubectl ...

  10. springCloud项目解决跨域问题

    通过 spring cloud gateway 实现, 方式一:选择在主启动类中注册 CorsWebFilter 类: /** * 1.允许cookies跨域 * 2.允许向该服务器提交请求的URI, ...