SPL 桌面实践:如何快速将一个 Excel 拆成多个

相信很多小伙伴都遇到过需要将一个大的 Excel 表格拆分成多个小表的情况,显然复制粘贴不可取,VBA 又太复杂。这里给大家介绍一个更简单好用的方法,使用esProcSPL,分分钟帮你解决问题。

直接看例题。

1. 按行数拆分

有订单表文件 Orders.xls 部分数据如下图所示,第 1 行是列标题,第 2 行开始是数据,每行一条数据。

..

现在需要把这个 Excel 文件按照指定的行数拆分,每 300 行拆分为一个小文件。

将下面几句代码复制到 esProc SPL 即可:


A

B

1

=T@c("Orders.xlsx")


2

for A1,300

=T("Orders"/#A2/".xlsx",A2)

A1 读取 Orders.xlsx 文件,@c选项表示将文件数据读入成游标,读成游标后可以分批次读取操作

A2 循环 A1 中数据,每次取 300 条数据

B2 以 Orders 加循环序号为文件名,将 A2 中的 300 条数据写入文件

拆分为多个文件:

..

2. 按数据分类拆分

还是上题的订单数据,按 Shippers 分类,每个分类的数据单独一个 Sheet,以分类名作为 Sheet 名,拆分后的结果如下所示:

..

..

..

代码如下:


A

B

1

=T("orders.xlsx")

=A1.group(Shippers)

2

for B1

=file("Ordersm.xlsx").xlsexport@kt(A2;A2.Shippers)

A1 读入 orders.xlsx 中数据
B1 按 Shippers 分组
A2 循环每个 Shippers 组
B2 以 Shippers 名作为 Sheet 名,将 A2 中的分组数据写入 Sheet

当然也可以将分类内容拆分到多个文件中,将 B2 中的代码改为“=T(A2.Shippers+".xlsx",A2)”即可。表示以 Shippers 名作为文件名,将 A2 中的分组数据写入不同的文件。

生成多个文件。

..

3. 按条件分段拆分

有订单明细数据文件 OrderDetailExtended.xlsx 如下所示:

..

按照 ExtendedPrice 列的值分段,按 <500, 从 500-2000,>2000 分成三段,分别存成三个 Excel 文件。拆分后的结果如下所示:

lt500.xlsx:

..

Mt2000.xlsx:

..

500-2000.xlsx:

..

实现代码:


A

B

1

=T("OrderDetailsExtended.xlsx")


2

=A1.group(if(ExtendedPrice<500:"lt500.xlsx",ExtendedPrice>2000:"mt2000.xlsx";"500-2000.xlsx"):fileName;~:data)


3

for A2

=T(A3.fileName,A3.data)

A1:读入 OrderDetailsExtended.xlsx 文件中的数据

A2:对 A1 按照 ExtendedPrice 列值分组,小于 500,大于 2000,以及介于 500 和 2000 之间,分成三组,用文件名给对应的组取名

A3:按 A2 循环

B3:把每一行中的组数据写入对应的文件中

拆分完成!!!

当然esProcSPL还有很多炫酷的功能,有需要的小伙伴可以去查阅这本书esProc 桌面版与 Excel 处理,职场上90%Excel问题都能在这本书中找到答案。书中的代码基本上复制过去,稍加改改就可使用。

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

下载地址:» esProc Desktop Download