近期有对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 }

最新文章

  1. SVG图案填充-Pattern
  2. 【poj2096】Collecting Bugs
  3. ThinkPHP数据库访问CRUD;__SELF__和__ACTION__的区别;自动收集表单:$n-&gt;create();
  4. dingding post POST请求
  5. 在c或c+程序里打印调用栈。转
  6. IO流的练习 —— 创建用户注册、登陆案例
  7. 经过本人 6 年.net 工作经验证明 .net 工资确实比 Java 低
  8. swift系统学习控件篇:UIProgressView+NSTimer+UIstepper+UIAlertController
  9. #import与@class的区别
  10. 【转】Mac用户必备!100多款免费实用的苹果Mac软件大搜集
  11. Jquery EasyUI中treegrid的中右键菜单和一般按钮同时绑定事件时的怪异事件
  12. bzoj 2829 信用卡凸包(凸包)
  13. final效率分析
  14. 2 - Annotations标注
  15. 2015第23周一SVN插件安装
  16. mip-link 组件功能升级说明
  17. SVN客户端操作
  18. 微信小程序用setData给数组对象赋值
  19. Win10系统无法使用小米手机的远程管理功能
  20. magento中Model创建以及该Model对于数据库的增删改查

热门文章

  1. Matplotlib 3.0 秘籍&#183;翻译完成
  2. Lesson3——NumPy 数据类型
  3. Idea Error:java: System Java Compiler was not found in classpath:
  4. java.lang.IllegalArgumentException: Failed to register servlet with name &#39;dispatcher&#39;.Check if there is another servlet registered under the same name
  5. Java中的输入流与输出流
  6. 使用python实现冒泡排序和快速排序
  7. MyBatis功能点二:从责任链设计模式的角度理解插件实现技术
  8. DevOpts 前端开发和 Spug
  9. CobaltStrike逆向学习系列(10):TeamServer 启动流程分析
  10. TestNG基本使用