如何实现不同文件夹中的同名excel文件的批量纵向合列合并?

请问,如何实现不同文件夹中的同名excel文件的批量合并呢?——注意,不是一个文件从另一个文件的头部或尾部开始合并,是按列方向纵向合并。

因为是同名文件,所以要考虑到合并的先后顺序,合并的先后顺序按文件夹名称从小到大顺序来。

比如,10个文件同名,分别在文件夹“1”、文件夹“2”、文件夹“3”、文件夹“4”、文件夹“5”

文件夹“1”的文件“待合并.xls”有:ABC三列
文件夹“2”的文件“待合并.xls”有:AB二列
文件夹“3”的文件“待合并.xls”有:ABCD四列
文件夹“4”的文件“待合并.xls”有:ABCE四列
文件夹“5”的文件“待合并.xls”有:AB二列

文件夹“1”的文件“待合并9.xls”有:ABC三列
文件夹“2”的文件“待合并9.xls”有:AB二列
文件夹“3”的文件“待合并9.xls”有:ABCD四列
文件夹“4”的文件“待合并9.xls”有:ABCE四列
文件夹“5”的文件“待合并9.xls”有:AB二列
最后在当前文件夹中生成子文件夹“12345合并”,并形成两个新文件:待合并-12345合并.xls,文件中有ABDCEFGHIJKLMNO共15列;待合并9-12345合并.xls,文件中有ABDCEFGHIJKLMNO共15列。

可以用ActiveX技术,用C++或者VB调用EXCEL作为服务器来实现,C++或VB对文件夹和文件的处理比较方便,编程思路如下:
1、框架--在某文件夹下存在若干子文件夹,每个子文件夹的名称按1、2、3、4、5、。。。命名
2、程序遍历某文件夹下的所有子文件夹,并利用EXCEL逐一打开XLS文件(按文件夹名称的顺序),将1文件夹下找到的第一个XLS文件的名称记下来,同时复制出其有数据的列 到一个新工作簿中,然后关闭这个工作簿,然后到2文件下找同名文件(工作簿),并将其有数据的列复制到新工作簿中空白列中(与前一工作簿的列数有关,也就是数据往右靠),接下来3、4、5等文件夹。
3、处理完一种同名文件(工作簿),关闭这个新建的工作簿(需要起个名字存盘),接着处理下一种同名文件,直至处理结束,
以上说的本质上就是:
自编的程序作为客户端,EXCEL作为服务器,利用ACTIVEX技术,来处理你的工作
----------有兴趣的话可以一起探讨哦(我是用C++的)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-05-20
如果你会VBA,发现这个其实真的不难,只是代码有点长而已,花点时间能做出来。
具体算法可以这样:使用一个字典对象记录文件名与新建Workbook的对照关系,循环扫描所有文件夹(可以用DIR或者FSO),嵌套循环扫描文件夹下的所有文件,内层循环打开文件,检查自动中是否有对应的汇总工作簿,没有就新建并维护字典,然后复制内容到汇总文件列末尾。
第2个回答  2019-05-19
注意,不是一个文件从另一个文件的头部或尾部开始合并,是按列方向纵向合并。
因为是同名文件,所以要考虑到合并的先后顺序,合并的先后顺序按文件夹名称从小到大顺序来。
比如,10个文件同名,分别在文件夹“1”、文件夹“2”、文件夹“3”、文件夹“4”、文件夹“5”
文件夹“1”的文件“待合并.xls”有:ABC三列
文件夹“2”的文件“待合并.xls”有:AB二列
文件夹“3”的文件“待合并.xls”有:ABCD四列
文件夹“4”的文件“待合并.xls”有:ABCE四列
文件夹“5”的文件“待合并.xls”有:AB二列
文件夹“1”的文件“待合并9.xls”有:ABC三列
文件夹“2”的文件“待合并9.xls”有:AB二列
文件夹“3”的文件“待合并9.xls”有:ABCD四列
文件夹“4”的文件“待合并9.xls”有:ABCE四列
文件夹“5”的文件“待合并9.xls”有:AB二列
最后在当前文件夹中生成子文件夹“12345合并”,并形成两个新文件:待合并-12345合并.xls,文件中有ABDCEFGHIJKLMNO共15列;待合并9-12345合并.xls,文件中有
ABDCEFGHIJKLMNO共15列。
第3个回答  2019-05-20
用Excel的vba做是可以做到,但确实比较繁琐,除了提取文件夹和文件名,还要对文件夹进行排序,再对文件进行提取。
第4个回答  2019-05-19
这位同志,反复看了看你的这一需求,Excel软件强大的功能不吻合你的这一需求,建议你通过数据库+SQL语句(或程序语言)来实现更为方便。本回答被网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网