WPS利用SQL做拆分到行
如上图数据源,需要将统计每个姓名对应的总分,借助DuckDB的拆分到行的功能,很容易先拆分再聚合统计出结果,代码效果如下:
JSA里也可以调用duckdb来处理,代码如下:
function split2rows(){
let connstr="ODBC;Driver={DuckDB Driver}"
let sql=`select name,sum(分数) as tot from (select UNNEST(string_split(学生姓名,',')) as name, 分数 from read_xlsx('z:/练习1.xlsx',range='A1:C7')) a group by 1`
let d=ActiveSheet.QueryTables.Add(connstr,ActiveSheet.Range("a1"),sql)
d.Refresh()
}