3.1 基本用法

 

esProc 提供了 clipboard() 函数,可以与剪贴板交换数据。

下面用“各科前 3 名的学生”为例进行说明。

Excel 中处理前的数据如下,其中 A 列是学生姓名,B-D 列分别是数学、英语、物理成绩。

A B C D
1 name math english physics
2 lily 97 100 99
3 Joshua 100 99 100
4 Sarah 98 99 96
5 Bertram 94 95 85
6 Paula 91 88 91
7 Sophia 92 81 76
8 Ben 87 80 76
9 Ruth 92 91 87
10 Pag 95 87 87

计算目标:求出每学科成绩前 3 名的学生,并追加到本科目成绩之后。

这个任务要用到行集合 TopN、按序号拼接等功能,Excel 本身不好实现,但借助 SPL 则很容易。

先在 Excel 中选中源片区 (A1:D10),按 Ctrl+C,复制到系统剪贴板,打开集算器,编写并执行如下脚本:

A
1 =clipboard().import@t()
2 =A1.top(-3;math).(name)
3 =A1.top(-3;english).(name)
4 =A1.top(-3;physics).(name)
5 =join@p(A2;A3;A4).export()
6 =clipboard(A5)

A1 从剪切板读取数据
A2 math 前 3 名
A5 拼成二维表,转成字串
A6 向剪切板写数据

上面代码中,clipboard()函数有两种形态,其中无参数调用该函数时,可取出剪贴中的字符串,如 A1 格;以变量或格名为参数调用该函数时,可向剪贴板写入字符串,如 A6 中的 clipboard(…)。

执行上述脚本后,在 Excel 的 B11 格用 Ctrl+V,即可将剪切板中的数据复制到 B11-D13,如下:

A B C D
10 Pag 95 87 87
11 Joshua Lily Joshua
12 Sarah Sarah Lily
13 lily Joshua Sarah

帮你早下班 - esProc 桌面版与 Excel 数据处理
2.3 编辑 SPL 代码
3.2 随意编辑脚本