举例 有 Excel 文件 Book1.xlsx,数据如下所示: class | name | Math | English | PE | one | Jack | 89 | 78 | 83 | | Tom | 90 | 60 | 99 | | Jerry | 76 | 88 | 62 | | Kate | 66 | 90 | 85 | two | Jim | 87 | 60 | 76 | | Alice | 100 | 99 | 97 | | Rebecca | 75 | 76 | 88 | three | Cindy | 63 | 80 | 72 | | Kitty | 82 | 50 | 74 | | Lucy | 40 | 100 | 63 |
现在需要从三个班的某次测试成绩,汇总出各班的人数、所有学科(包含数学、英语、体育)的总成绩: calss | num | total | one | 4 | 966 | two | 3 | 758 | three | 3 | 624 |
编写 SPL 脚本: 方法1:结构化数据 | A | 1 | =file("Book1.xlsx").xlsimport@t() | 2 | =A1.groups@i(class;count(1):num,sum(~.array().to(3,).sum()):total) | 3 | =file("result.xls").xlsexport@t(A2) |
A1 读取 Excel 数据 A2 按班级分组,计算每个班级的人数 num,所有学科(3 至 5 列)的总成绩 total,其中${to(3,5).("#"/~).concat("+")}拼出串:#3+#4+#5 A3 将结果 A2 导出至 result.xlsx 方法2:二维数组 | A | 1 | =file("Book1.xlsx").xlsimport@w(;,2:) | 2 | =A1.groups@i(~(1):calss;count(1):num,sum(~.to(3,).sum()):total) | 3 | =file("result.xls").xlsexport@t(A2) |
A1 读取 Excel 数据,从第二行开始读,读成一个二维数组 A2 按班级(第一列)分组,求每个班级的人数 num,所有学科(第三列往后)的总成绩 total A3 将结果 A2 导出至 result.xlsx
|