找回密码
 立即注册

QQ登录

只需一步,快速开始

Tracy.Liu 讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2020-11-6 18:59  /   查看:4668  /  回复:0
相信很多小伙伴都有这样的需求,需要在前端直接把excel的数据去重后导入到系统中。

首先呢,活字格一直都有一个“导入excel数据到表格”的功能~~

但是对于去重这个功能来说,在最早的时候,我们需要在前端自己做逻辑的~
具体怎么做,在这节公开课中,我专门做过讲解,感兴趣的小伙伴可以看看哦~

再后来,为了方便起见,“导入excel数据到表格”加强了,提供了三种导入模式,“追加”“合并”“替换”。想了解更多详情,请戳这里
image.png816459655.png

那么问题又来了,如果我使用了“合并”模式导入数据,但是页面上的表格设置了查询条件,那么他只会按照我页面上的数据做去重导入,而不是根据我数据库的所有数据来判断是否重复。

于是乎,在后端通过服务端命令实现去重导入的需求就出现了~~

下面我们就来说说,通过服务端命令如何实现excel数据去重导入?
我们先来看一眼效果:我们即将导入的测试数据如下图,其中只有最后一条是新数据,上面三条在数据库汇总均已存在。
image.png259494017.png
我们来导入一下
服务端导入Excel.gif

20201106182844.gif

那么这个具体是怎么实现的嘞~我们来一步一步实现它~

1.首先我们需要一个辅助表,在页面上绑定这个表,并设置松绑定,后面我们导入就是往这个表格中去导入。这个表中也永远不会有数据,名副其实的辅助表~
image.png216592406.png
image.png138674620.png

2.导入按钮中设置三个命令,一个是往页面这个辅助表中导入excel,然后调用服务端命令(这个是核心逻辑),最后弹出可框,提示导入成功,有哪些字段是重复的,没有导入进来。
image.png765340270.png

3.服务端命令的逻辑
1)从页面表格中取导入的所有数据,作为输入的数组参数,并将完成后的返回码反馈到隐藏单元格中。
image.png162844542.png

2)先忽略第一个设置参数命令,我们直接进入循环中的逻辑
循环导入的每一行数据,然后根据当前这一行的单号,在“销售订单表”中查询是否有对应的数据,作为一个新的参数,我们称之为“是否存在”。
image.png478775634.png

3)如果不存在,那么我们就执行“数据表操作”命令,将这条数据存入“销售订单表”中。
image.png888788146.png

4)如果存在,那么我们就记录下来。怎么记录呢?这就要用到第一行的设置参数命令了。这里要注意看,参数名称设置的是一样的哦~
image.png828453979.png
(这里也正好说明了,没有特别的需求,平时我们定义参数名称一定不要重名,要不然后面的会把前面的覆盖呦~)

5)执行完后,返回“重复数据有”参数即可大功告成!
image.png414121093.png

这里附上工程文件,供各位小伙伴下载试用研究呦~
服务端命令去重导入Excel数据.fgcc (58.88 KB, 下载次数: 351)

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部