固定格式表格对位汇总
有N个格式完全相同的Excel文件,要把这些文件汇总起来成为一个文件,数字单元格的值为各文件中的同名数字单元格之和。
举例
总公司有收到各分公司发来的资产负债表,其中某分公司的表格如下图所示(共有37行,图中只列出14行):
现在需要用各分公司的表格汇总出总公司的资产负债表。
编写SPL脚本:
A |
B |
C |
|
1 |
=directory@p("e:/zcfzb/zc*.xlsx") |
||
2 |
=A1.(file(~).xlsopen()) |
||
3 |
=to(4,37) |
[B,C,E,F] |
=A3.(B3.(~/A3.~)).conj() |
4 |
for C3 |
>v=null |
|
5 |
for A2 |
>v+=number(B5.xlscell(A4,1)) |
|
6 |
>A2(1).xlscell(A4,1;string(v)) |
||
7 |
=file("e:/zcfzb/total.xlsx").xlswrite(A2(1)) |
A1 列出文件夹中要汇总的所有以zc开头的资产负债表文件名,选项@p表示列出文件全路径
A2 打开A1中列出的文件为Excel对象
A3 指定要汇总的数字单元格的行号范围4-37
B3 指定要汇总的数字单元格的列号B,C,E,F
C3 用A3行号和B3列号拼出所有要汇总的数字单元格的名称
A4 循环C3中所有要汇总的单元格
B4 定义汇总值变量v
B5 循环所有分公司资产负债表
C5 从当前分公司资产负债表中读出当前汇总单元格的值,转成数值后累加到v
B6 将完成累加后的v保存到第1个分公司的资产负债表中
A7 将第1个分公司的资产负债表保存到总公司资产负债表total.xlsx