如何把 Excel 大文件拆分成几个小文件
例题描述
有过百万行的订单表文件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
英文版