Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2588|回复: 0

[分享] Excel提取:如何将多个卡片构成的xls拆分成单独文件

[复制链接]
发表于 2021-3-31 11:41 | 显示全部楼层 |阅读模式
自动拆分 Excel 很常见,简单的行式表格容易做,用 Python 等语言也不难实现,但有格式的卡片式表格就比较困难了,拆分后还要保留表格格式。

例题说明:现在需要将 Excel 中的若干卡片分别拆分到不同的 Excel 中,并以形如:001-fxs001 张三.xlsx 命名。


实现步骤:
1.     首先准备一个结果表格模板用来保证格式,表格内容为空,如下所示:

接下来分别读取原表每部分的数据依次填充到“模板”中,再分别保存成 Excel 文件就可以了。

2.     编写esProc SPL脚本:


把里面的SPL脚本列出来看下:
A
B
C
D
1
D:/Excel 表格拆分 /


2
=file(A1+"总表(原始数据表).xlsx").xlsopen()[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA]18
3
forif   len(A2.xlscell("A"/(C2*(A3-1)+1)))==0break
4

=file(A1/"结果模板.xlsx").xlsopen()

5

for B2for C2=A2.xlscell(B5/(C5+C2*(A3-1)))
6



=B4.xlscell(B5/C5;D5)
7

=C2*(A3-1)+3

8

=A2.xlscell("X"/B7)=A2.xlscell("M"/B7)=A2.xlscell("C"/(B7+1))
9

=file(A1/B8/"-"/C8/D8/".xlsx").xlswrite(B4)

采用循环卡片数量、固定行(18 行)和固定列(A 到 AA 列)读取每个原始 Excel 格值(D5 表达式)并将其写入模板对应格中(D6 表达式),需要注意的是写入模板的行始终是从 1 到 18 行。
B7 到 D8 取固定格值用于命名,如果不需要特殊命名则脚本更为简短。

按 F9 执行脚本可以看到目录下生成了 4 个文件:


其中“001-fxs001 张三.xlsx”的内容:


“003-fxs003 王五.xlsx”的内容:

搞定!

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-6-4 09:07 , Processed in 0.161934 second(s), 4 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表