多条件筛选

举例

有 Excel 文件“emp.xlsx”,是雇员表,部分数据如下所示:

可能对姓名(NAME)、生日(BIRTHDAY)、部门(DEPT),进行多条件筛选,例如,找出姓名是 Ryan,生日大于 1980-01-01 的结果,结果如下:

编写 SPL 脚本:


A

1

=if(name!="" &&   name,"NAME==name",true)

2

=if(dept!="" &&   dept,"DEPT==dept",true)

3

=if(bday!="" && bday,  "BIRTHDAY>date(bday,\"yyyy/MM/dd\")",true)

4

=filter=[A1:A3].concat("&&")

5

=file("emp.xlsx").xlsimport@t().select(${filter})

6

=file("result.xlsx").xlsexport@t(A5)

脚本参数设置如下:

A1  拼出姓名条件的串,若姓名参数为空值或者空串,则返回 true

A2  拼出部门条件的串,若部门参数为空值或者空串,则返回 true

A3  拼出生日条件的串,若生日参数为空值或者空串,则返回 true

A4  用 && 连接各条件串

A5  读取雇员表,再过滤数据

A6  结果导出至 result.xlsx