使用开源计算引擎提升Excel格式文件处理效率( 三 )


使用开源计算引擎提升Excel格式文件处理效率

文章插图
生成规则的行式xls , SPL提供了xlsexport函数 , 用法也很简单 。比如 , 上面例子的解析结果是个序表 , 存在SPL的A1格中 , 下面将A1写入新xls的第一个sheet , 首行为列名 , 只要一句代码:=file("e:/result.xlsx").xlsexport@t(A1)
xlsexport函数的功能丰富多样 , 可以将序表写入指定sheet , 或只写入序表的部分行 , 或只写入指定的列:=file("e:/scores.xlsx").xlsexport@t(A1,No,Name,Class,Maths)
xlsexport函数还可以方便地追加数据 , 比如对于已经存在且有数据的xls , 将序表A1追加到该文件末尾 , 外观风格与原文件末行保持一致:=file("e:/scores.xlsx").xlsexport@a(A1)
不规则片区写入数据 , 可以使用前面的xlscell函数 。比如 , xls中蓝色单元格是不规则的表头 , 需要在相应的白色单元格中填入数据 , 如下图:
使用开源计算引擎提升Excel格式文件处理效率

文章插图
直接用POI要大段冗长的代码 , 而SPL代码就简短许多:
使用开源计算引擎提升Excel格式文件处理效率

文章插图
注意 , 第6、9、11行有连续单元格 , SPL可以简化代码一起填入 , POI只能依次填入 。
SPL提供足够的查询计算能力查询计算是Excel处理任务的重点 , SPL提供了丰富的计算函数、字符串函数、日期函数 , 以及标准SQL语法 , 不仅支持日常的xls计算 , 也能计算内容不规则的xls和逻辑复杂的xls 。
SPL提供了丰富的计算函数 , 可直接完成基础计算 。比如前面的分组汇总 , 只要一句:
A1.groups(SellerId;sum(Amount))
更多计算:
条件查询:A1.select(Amount>1000 && Amount<=3000 && like(Client,"

经验总结扩展阅读