有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