例题描述

有过百万行的订单表文件orders.xlsx,部分数据如下图所示:

现需要把这个大文件拆分成一些小文件,有两种拆法:

1、 按分类拆分,比如每个州的订单数据存为一个文件。

2、 简单按行数拆分,每10万行存为一个文件。


实现步骤

1、 运行集算器

可去润乾官网下载职场版,同时下载一个免费授权就够了,首次运行时会提示加载。

2、 编写脚本:

(1)按分类拆分

把代码列出来看得清楚点:


A

B

C

D

1

>dir="E:/orders/"




2

=file(dir+"orders.xlsx").xlsimport@tc()



3

for A2,50000

=A3.group(state)



4


for B3

=file(dir+B4(1).state+".xlsx")


5



if C4.exists()

=C4.xlsexport@a(B4)

6



else

=C4.xlsexport@t(B4)

A1 定义保存文件的目录

A2 打开orders.xlsx,内存有可能装不下所有数据,选项@c表示以游标的方式打开,选项@t表示首行是列标题

A3 对A2的游标循环取数,每次取50000行

B3 对当前取出的数据按州进行分组

B4 循环处理每个分组(州)

C4 定义保存各组数据的文件,以州名作为文件名

C5D5 如果文件已存在,则用选项@a追加写入当前分组的数据

C6D6 如果文件不存在,则用选项@t写入当前分组的数据,首行写入列标题


(2)按行数拆分

编写代码如下:


A

B

1

>dir="E:/orders/"


2

=file(dir+"orders.xlsx").xlsimport@tc()

3

for A2,100000

=file(dir+"orders_"/#A3/".xlsx").xlsexport@t(A3)

A1 定义保存文件的目录

A2 打开orders.xlsx,内存有可能装不下所有数据,选项@c表示以游标的方式打开,选项@t表示首行是列标题

A3 对A2的游标循环取数,每次取100000行

B3 将当前取出的数据保存到新文件里,#A3表示A3中循环的次数


3、 按F9运行这段程序,运行结束后就可以在E:/orders目录中看到拆分出的文件。

【附件】 split.zip