继续分享Excel提取的话题,使用的工具是esProc SPL,可以作为Excel插件使用。
某对账单随着日期不断增加(以多 sheet 保存)
但有的日期可能会有多条记录,如 7-5:
现在需要将对账单实时汇总到第一个“应收账款明细”页签中,形成如下结果:
编写esProc SPL脚本:
脚本列出来看下: | A | B | C | D | 1 | =file("39/ 对账模板.xlsx") | =A1.xlsopen() | =create(${16.("_"/~).string()}) | [A,B,C,D,E,F,G,H,I,J] | 2 | for B1.(stname).to(2,) | =B1.xlscell("J6",A2) | =to(21,25).(B1.xlscell("I"/~,A2)) | | 3 | | for | >row=8+B3 | | 4 | | | if len(B1.xlscell("A"/row,A2))==0 | break | 5 | | | =D1.(B1.xlscell(~/row,A2)) | | 6 | | | >C1.insert(0,C5(1),B2,${C5.to(2,).string()},${C2.string()}) | | 7 | =B1.xlsexport@a(C1;B1.stname) | =A1.xlswrite(B1) | | |
C1 创建用于保存结果的序表,共 16 列,与目标结果列数相同 A2 从第二个 sheet 开始循环,取得运单号、开票税金等单值数据 B3 开始则读取日对账单多行(不定行)记录,并与上面的单值数据组成一条记录插入 C1 中,直到读完最后一行 最后将结果表写入 Excel(A7)并输出文件(B7)
按 F9 运行脚本就可以看到开头提到的结果“应收账款明细”了。当然还可以再进一步进行处理,判断并将新增日对账单添加到明细中,这里不再赘述。
|