如何快速合并多个 Excel 文件

N多个Excel如何合并Excel类型一样,如何合并?合并时有重复的数据怎么办?多个文件数据汇总又如何做?相信很多小伙伴工作中都会碰到类似问题,而又有很大一部分小伙伴面对这些问题会手足无措。表格太多,复制粘贴不可取,PQ不够用,Python又太麻烦,还有更简单、更自动化的方式吗?今天就给大家介绍一款能够处理各种复杂Excel场景的利器SPL,分分钟帮你解决Excel难题。

esProc SPL是一款擅长结构化数据处理的工具,它有丰富的函数,很多复杂的Excel工作,SPL都可以轻松解决。关键的是,虽然它是一门编程语言,但是用起来非常简单,很多用PythonSQL要一堆代码才能解决的问题,SPL几句就搞定了即使你没有编程基础也能快速入门而且它还配套有大量的例题,很多时候直接复制例题的代码就能使用。


话不多说,我们直接上例题。

1:列名列数相同的 Excel 纵向合并

首先来个简单的,有两张Excel表,表的列名列数相同,如下图

合并前:

Fruits.xlsx

..

Meats.xlsx
..

现需要将其进行纵向合并,如图

合并后:

..

对于这种字段完全一致的表格,SPL直接用A|B|C的方式就可以解决

实现代码:


A

1

=file("Fruits.xlsx").xlsimport@t()

2

=file("Meats.xlsx").xlsimport@t()

3

=A1|A2

4

=file("Foods.xlsx").xlsexport@t(A3)

A1A2表示导入Excle文件

A3 A1|A2就表示把两个表格纵向合并

A4 表示将合并后的结果A3,保存为xlsx文件到指定路径。

SPL的编程方式很友好,就像在Excel里写公式一样,可以用表格名称A1,A2……来引用表格里的数据进行计算。

两个表格合并很简单,那么N多个表格呢

也很简单

2:N 个列相同的表格纵向合并

首先把要合并的文件放到同一路径下,比如我们把50个文件都放到Fruits文件夹里

..

然后运行代码:


A

1

=directory@p("D:/Fruits/*.xlsx")

2

=A1.conj(T(~))

A1 directory有名址录的意思,这个函数在这里就表示列出Fruits文件夹里所有.xlsx文件名目录

..

A2 表示循环打开A1路径里的文件,然后进行合并。

T()函数相当于例1file().xlsimport@t()函数,是它的升级函数,表示打开指定路径的文件,而且T()函数还能打开txt,csv,xls等多种格式文件。

A.()是循环函数,A1.(T(~))表示循环A1里的每一个文件路径,并用T()函数打开该文件,~符号表示每一次循环的对象。

循环打开所有文件后,我们还需要把它们合并到一起,因此再加一个conj()函数,表示conjunction的意思。

因此,A2单元里的代码A1.conj(T(~))就表示打开A1里的50个文件,然后进行合并成一个。

只要是字段相同的Excel文件合并,不管多少个,都可以套用这两句代码。

那么,再添加一个需求,我们不仅要合并,还希望知道合并后文件里的每一条数据来自哪个文件。

当然也可以。

3: 多个文件纵向合并, 文件名转成列值

我们希望50个文件合并后添加一个新的列命名为Category,表示合并后的每个商品来自哪个文件

合并后:

..

只需要在例2的代码上进行修改即可


A

1

=directory@p("D:/Fruits/*.xlsx")

2

=A1.conj((fn=filename@n(~),T(~).derive(fn:Category)))

filename@n()表示获取A1路径里的文件名,比如Fruits1,Fruits2

derive()表示对T()函数打开的每个表格添加衍生变量“Category”,衍生变量取值为fn即每个Excel文件的名字

conj()合并的意思,表示所有表格添加完衍生变量“Category”后进行合并

A2 返回如下结果

..

实现了将多个文件合并,并将文件名转为列值。

两句代码,分分钟就能完成多个文件的合并,是不是很简单,很高效!


当然SPL还能实现更多复杂场景的Excel文件操作,比如:合并时汇总数据,列名不同的文件合并,横向合并,一对多合并,插入汇总sheet等等有需要的小伙伴可以去查阅这本书esProc 桌面版与 Excel 处理职场上90%Excel问题都能在这本书中找到答案。书中的代码基本上复制过去,稍加改改就可使用。

另外,SPL的安装也很简单,不需要像Python等语言那样还要配置环境,下载后双击就可以桌面安装。

下载地址:» esProc Desktop Download