有過百萬行的訂單表文件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
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!