一看就会,超有用活字格技能:一百零三、服务端命令实现Excel数据去重导入
相信很多小伙伴都有这样的需求,需要在前端直接把excel的数据去重后导入到系统中。首先呢,活字格一直都有一个“导入excel数据到表格”的功能~~
但是对于去重这个功能来说,在最早的时候,我们需要在前端自己做逻辑的~
具体怎么做,在这节公开课中,我专门做过讲解,感兴趣的小伙伴可以看看哦~
再后来,为了方便起见,“导入excel数据到表格”加强了,提供了三种导入模式,“追加”“合并”“替换”。想了解更多详情,请戳这里
那么问题又来了,如果我使用了“合并”模式导入数据,但是页面上的表格设置了查询条件,那么他只会按照我页面上的数据做去重导入,而不是根据我数据库的所有数据来判断是否重复。
于是乎,在后端通过服务端命令实现去重导入的需求就出现了~~
下面我们就来说说,通过服务端命令如何实现excel数据去重导入?
我们先来看一眼效果:我们即将导入的测试数据如下图,其中只有最后一条是新数据,上面三条在数据库汇总均已存在。
我们来导入一下
那么这个具体是怎么实现的嘞~我们来一步一步实现它~
1.首先我们需要一个辅助表,在页面上绑定这个表,并设置松绑定,后面我们导入就是往这个表格中去导入。这个表中也永远不会有数据,名副其实的辅助表~
2.导入按钮中设置三个命令,一个是往页面这个辅助表中导入excel,然后调用服务端命令(这个是核心逻辑),最后弹出可框,提示导入成功,有哪些字段是重复的,没有导入进来。
3.服务端命令的逻辑
1)从页面表格中取导入的所有数据,作为输入的数组参数,并将完成后的返回码反馈到隐藏单元格中。
2)先忽略第一个设置参数命令,我们直接进入循环中的逻辑
循环导入的每一行数据,然后根据当前这一行的单号,在“销售订单表”中查询是否有对应的数据,作为一个新的参数,我们称之为“是否存在”。
3)如果不存在,那么我们就执行“数据表操作”命令,将这条数据存入“销售订单表”中。
4)如果存在,那么我们就记录下来。怎么记录呢?这就要用到第一行的设置参数命令了。这里要注意看,参数名称设置的是一样的哦~
(这里也正好说明了,没有特别的需求,平时我们定义参数名称一定不要重名,要不然后面的会把前面的覆盖呦~)
5)执行完后,返回“重复数据有”参数即可大功告成!
这里附上工程文件,供各位小伙伴下载试用研究呦~
页:
[1]