本章主要展示有关程序逻辑的代码参考,比如将网格内的数据拼成序列、实现类似switch/case的结构、取得当前循环已进行的次数、继续、跳出外层循环、清除使用过的变量以节省内存、向子程序传递多个参数、子程序返回多个值、成片注释的写法写进多个单元格中、在代码中使用宏等。
| 
 | A | B | C | D | 
 | 
| 1 | 1 | 2 | 3 | 4 | 
 | 
| 2 | =[A1:D1] | 
 | 
 | 
 | 
 | 
| 
 | A | B | 
 | 
| 1 | =80 | 
 | 
 | 
| 2 | if A1>=90 | 
 | 
 | 
| 3 | 
 | > A10="excellent" | 
 | 
| 4 | else if A1>=80 | 
 | 
 | 
| 5 | 
 | > A10="good" | 
 | 
| 6 | else if A1>=60 | 
 | 
 | 
| 7 | 
 | > A10="pass" | 
 | 
| 8 | else | 
 | 
 | 
| 9 | 
 | > A10="fail" | 
 | 
| 10 | 
 | 
 | good | 
| 
 | A | B | C | 
 | 
| 1 | for | if #A1==10000 | break | 
 | 
| 
 | A | B | C | D | 
 | 
| 1 | for [3,2,1] | 
 | 
 | 
 | 
 | 
| 2 | 
 | for [5,1,3] | 
 | 
 | 
 | 
| 3 | 
 | 
 | if A1>B2 | next A1 | 继续下一个循环 | 
| 4 | 
 | 
 | if A1== B2 | break A1 | 跳出循环 | 
| 
 | A | 
 | 
| 1 | >var1=to(100) | 
 | 
| 2 | =demo.query("select * from EMPLOYEE") | 
 | 
| 3 | … | 
 | 
| 4 | > var1=null,A2=null | 清除var1和A2单元格 | 
| 
 | A | B | 
 | 
| 1 | func | 
 | 多个参数依次排列 | 
| 2 | 
 | =A1 | 
 | 
| 3 | 
 | =B1 | 
 | 
| 4 | 
 | return B2+B3 | 
 | 
| 5 | =func(A1,11,21) | 
 | 32 | 
| 
 | A | B | 
 | 
| 1 | func | 
 | 
 | 
| 2 | 
 | return [1,2,3,4] | 
 | 
| 3 | 
 | 
 | 
 | 
| 4 | =func(A1) | 
 | 
 | 
| 
 | A | B | 
 | 
| 1 | //This is an example about… | 
 | 一到三行都是注释 | 
| 2 | 
 | 1. Remark 1… | 
 | 
| 3 | 
 | 2. Remark 2… | 
 | 
| 4 | =1+3 | 
 | 
 | 
| 
 | A | B | 
 | 
| 1 | [1,2,3,4] | 
 | 
 | 
| 2 | func | return A1.${A2}() | 
 | 
| 3 | func | return A1.${lower(A3)}() | 
 | 
| 4 | =func(A2,"sum") | 
 | 返回A1.sum() | 
| 5 | =func(A3,"Avg") | 
 | 返回A1.avg() | 
| 
 | A | 
 | 
| 1 | =size.(char(65+rand(26))).concat() | size是参数,从外部传入 | 
| 2 | return A1 | 返回A1 | 
| 
 | A | 
 | 
| 1 | =call(“D:/demo.splx”,5) | 调用demo.splx子程序,传入参数5 | 
| 
 | A | B | 
 | 
| 1 | =demo.query("select * from EMPLOYEE") | 
 | 
 | 
| 2 | =A1.group(GENDER) | 
 | 按性别分组 | 
| 3 | fork A2 | =A3.select(SALARY>10000) | 并行计算,A3汇总结果 |