让我们一起探索一下这些藏在excel自动排序中的“小秘密”。-英雄云拓展知识分享
15424
2024-04-07
在B端产品中,导入是最多见的功能之一。当我们做项目时,需要触及到大量的数据,应当如何处理数据?本文介绍了将Excel数据导入到数据库中需要注意的点和方法,希望对你有所帮助。
最近在从0到1做一个新的项目,触及到大量数据的保护,有简单的基础字典数据的保护,也触及到“严肃数据”的保护,这些数据有个要求:一个都不能错。
我们是第一期版本,本来想直接写SQL更新,但是运维不让弄,也没有足够的时间去开发页面功能,为了快捷生产数据,这个时候最好的方式就是“批量导入excel”。把导入的功能弄上线后,坑我踩了很多,同时导入功能也是B端产品中最多见的功能。
我们今天就说说导入excel~接下来我先不依照导入的流程说,由于导入整体的流程比较简单。大流程就是将Excel数据导入到数据库中。
在细化一点,就是模板制作,用户下载模板,填写完数据后再上传文件。程序开始数据校验,有毛病数据用户再修改,直到导入成功进入到数据库。
我就不依照导入的流程说了,直接说我个人感觉比较重要的地方,这些弄清楚那导入就没问题了。
我整理了以下4点,我们一个个说。
导入时为了保证数据的准确性,最重要的就是“校验”了。
由于是导入的数据终究是到数据库,如果你对数据库有了解,校验逻辑你肯定会清楚很多。
不懂也没事,我们先说校验。
校验一般分为以下内容:
我们一个一个的说下:
(1)导入文件格式
对excel,常见的格式有xlsx、xls、csv;
推荐xlsx格式,它不但是至今为止主流的excel格式,而且相同行+列数据时,xlsx格式文件体积较小。
(2)导入文件大小
对导入文件体积大小的限制,对文件大小添加限制的主要缘由是文件过大时,程序处理起来会很费力,所以可以添加大小限制。
可以针对数据量大小设置,建议最大值在5M。
固然也能够对文件内的“行数”添加限制,比如说每次导入最多2000条等。
目的都是为了加个限制。
(3)导入文件名称
校验上传文件的文件名,当上传与要求的文件名称不一致时则报错。
当文件名称没有特殊作用时,不建议对名称进行校验。
模板里有表头名称、sheet页名称,用于让程序知道需要更新数据库里的哪一个表,哪一个字段。
表头名称是指点入模板内的列名,当导入到数据库的时候,程序知道哪一个列对应数据库里的表字段,当与导入模板要求不同时则报错。
由于一个excel里可以添加多个sheet页,如果你的模板里触及到多个sheet页,这个时候就需要对sheet页名称进行校验。
另外还有对表头字段名称顺序的校验,我们可以加上字段顺序的校验,当字段列顺序和模板不一样的时候,则提示模板不对。
固然也能够直接依照字段名称去匹配,不管字段顺序。
当模板校验经过后,在进入到下一步的数据校验。
当模板校验经过后,然后在对Excel内的数据进行校验,这个时候可以对文件内的必填的单元格数据、不可重复的单元格数据进行校验。
这个时候还是对Excel内的数据进行校验,还没有到数据库。
固然有个极端情况,就是模板内数据为空,只有个表头,这个时候不需要处理,直接提示:文件内数据为空,请补充数据后再上传。
接下来就是对字段进行其他校验,具体的校验我们在下边一起说。
(1)字段是不是必填
如果字段是必填值,导入的excel里单元格为空,所以数据就是毛病的,则需要进行报错提示。
(2)字段是不是唯一
对一些字段,我们要求是唯一的,但是会存在2种情况:
对这2种情况,都是由于数据有误引发的,我们可以制定规则:依照最近的唯一值进行更新数据,或是直接提示报错,
下边会细聊。
(3)字段格式
如数字格式、日期格式、时间格式、字符串格式。如果这列字段和数据库表字段的格式对不上,也导不进去。
还有就是数字的大小,比如只能输入个位数,导入时填写了100,则这个数据就有问题,就需要报错。
还有小数点位数、手机号、身份证号、税号等基础格式的校验。
这个校验需要针对每一个字段进行校验逻辑说明。
(4)字段长度
比如说最大长度是250个字符,但是excel里的字段长度写了500字符,那就导不进去了,得提示报错了。
(5)固定值校验
如果某个字段需要填写的固定值。
比如说单元格内只能填写是或否,填写其他内容时,则没法导入数据库。
对要填写固定值的单元格,我们可以在excel模板里添加下拉框,让用户直接选择,而不用再去输入。
(6)关联校验
关联校验有2种情况:
1、当填写某个字段后,另外一个字段则必须填写。
举个例子:当填写年龄最小值或最大值时,则必须填写年龄单位;当填写年龄单位时,则必须填写最大值或最小值。
2、字段跨sheet页校验
对模板里有多个sheet页时,且sheet页之间存在数据关系时,这个时候需要说清楚sheet页之间的校验。
举个例子:“说明书药品基本信息”中的商品编码与“说明书用法用量”中的“商品编码”需要对应上,当这两个sheet页里的商品编码对不上的时候,就是毛病数据,这个时候就要报错。
整行数据重复校验:如果一行数据相同,我们就能够认为是数据存在重复值,这个时候可以进行报错提示。
多个字段联合重复校验:多个字段合并在一起联合作为唯一值,则存在重复时则可以进行提示。
针对填写的字段做更细的校验:
比如填写是数字,则需要斟酌数字的大小,数字的小数点位数。
如果填写的是手机号,则需要斟酌手机号格式的校验。
当以上校验经过后,接下来程序就需要将数据导入到数据库了。
我们回顾以上的校验逻辑,可以发现,这些校验和“表单录入”功能需要斟酌到的校验基本类似。
在导入时,一定会存在填写内容不对的时候,这个时候就需要进行提示出问题数据了。
首先我们先肯定毛病提示的时机,就是“甚么时候提示”。
一般分为2种:
由于报错的时机是随着校验走的,我们需要针对毛病类型进行判断:
由于文件校验不经过,压根没法处理数据,这个时候直接报错提示。如文件类型不对、文件大小过大、文件名称不对等等。
对文件类型的限制,我们可以在选择文件的时候,限制选择的类型,在选择文件的弹窗内,仅展现支持的文件类型,过滤掉其它类型的文件。
对文件体积大小的校验,可以在选择文件后,由前端进行校验,直接进行提示。
对文件名称的校验,我建议不校验,如果非要校验,可以在上传后由前端或后端进行校验,出现毛病后直接报错提示。
模板不对没有办法进行下一步字段校验,这个时候需要报错。
如果模板毛病,我们需要将全部毛病的表头一起报错出来,而不是发现一个毛病表头后就立刻报错。
报错的方式,可以直接展现出毛病的表头名称,并提示出正确的表头名称。
当导入模板正确,这时候系统会对填写的每一个字段数据进行校验,这类时候出现的问题,我认为可以在最落后行一致提示。
对字段校验时的毛病数据,有几种方式我们可以参考:
方法1:直接文字提示
说清楚sheet页名称+第几行+第几列+毛病信息+正确信息。让用户线下修改,重新导入。
对毛病的信息,需要制定个排序方式,有条理的展现出毛病数据,可以依照sheet页顺序+行数顺序+列顺序顺次展现。
不过在提示第几行时,有个小细节,这个第几行要和excel文件内的行数对应,要提示研发注意。
方法2:导出毛病数据
功能上支持导出毛病数据,在excel文件内加一列【毛病信息】列,展现出每行的问题数据,让用户导出毛病数据进行线下修改。
这类比较合适导入字段内容较多,数据量较大的情况。
方法3:在线修改毛病数据
展现出报错数据,并提供功能让用户自己在线更改。这类方式比较合适excel内字段内容较少,校验逻辑较少的情况。
当导入数据后,程序会一边跑数据,一边校验。这个时候还有几个点需要注意。
甚么样的数据才能进数据库?
有2种:
重复数据的处理方式?
在导入时,当唯一值存在重复时,这个重复有2种情况:一个是在excel文件内有重复,一个是excel文件内唯一值与数据库已有的数据存在重复值。对重复值有以下处理方式:
过滤没必要要的数据:
(1)过滤空格
填写在单元格里的数据当有空格时,如果没有单独要求,则可让程序过滤掉空格。
如果空格没过滤,导入到数据库后则会构成脏数据。
如果用户填写的数据就有空格时,这个时候可以斟酌清空单元格数据内的前后空格。
(2)过滤全行空白数据
当excel中的数据整行数据全部为空时,可以将空白行和以后的行数据都不做处理。
如果我们在excel里使用了下拉框等方式,虽然没有填写值,但是程序在处理的时候会认为里边有值。
我们可以设置个规则:当一行数据全部为空时,则认为此行和以后行都无数据。
对导入模板,我们需要说清楚模板怎样填写,需要把上边提到的字段校验说清楚,同时结合excel的功能制作模板。
定义内涵好需要填写字段的表头名称,名称要和功能上的名称一致。
提供下载模板功能,让用户下载模板使用。
对1对1的关系,这个就很简单,每列对应数据库表中的一个字段,定义内涵好模板中的每一个表头列名。
当有1对多的关系时,我们可以设计2种方式。
①一个单元格填写多个值
在单元格内填写多个值,经过一个固定的分隔符号,比如用中文逗号,中文顿号、空格等固定值,让程序知道该怎样分隔。
②分成多行填写
将1对多的关系,依照多行填写。
我们可以针对实际填写的场景设置,把规则说清楚便可。
说明每一个字段的填写要求,哪些字段是必填、哪些字段不能重复等等,就是要说清楚字段该怎样填才能导进去。
如果字段过量时,可以拉个excel表,单独说明校验逻辑提供给研发。
示例以下:
对导入模板的填写我们可使用以下方式:
①新增一个sheet页写模板说明
②在模板前几行填写模板说明
③在单元格添加批注的方式填写说明
④填写示例数据
新增一行示例数据,让用户知道该怎样填写。
以上的方式我们也能够结合在一起,同时提示用户该怎样填。
① 如果填写的数据是固定值,我们可使用下拉框,直接让用户下拉选择。
如果字典值过量的时候,可以新增一个sheet页,经过设置下拉框取值范围便可。
②在模板内的添加基础校验
使用excel里的“行之有效的性”,添加基础的校验。
在开始导入前,首先要看每次支持导入的文件数量。一般每次导入1个文件。固然也能一次导入多个文件,直接每次选择多个文件便可。当同时导入多个文件时,需要注意每一个文件直接是不是有关系,每一个文件的处理是不是有处理顺序。
同步处理就是导入后,直接处理,页面处于加载状态,后台进行导入处理,此时使用者不能进行其它操作,只能当处理完成后,才能进行其他操作。对数据量较小,处理时间在用户可接受时间内,比如说10秒内,可以采取同步处理的方式。我和研发沟通后,同步处理起来比较方便,我们采取的都是同步处理方式。
异步处理,就是上传文件后,在后台进行处理,用户可以进行其他操作。当后台处理完成后,在提示用户处理结果。对数据量较大,处理时间较长时,可以采取异步处理的方式。
导入文件的交互方式要看采取哪一种数据处理方式,才能设计对应的页面交互。
我就不一个个说了,给大家举个例子:
最简单的,每次导入1个文件+出现一个毛病数据则没法导入+同步处理。
下载模板:列表里有个下载模板的入口
选择文件:点击导入,直接弹出文件选择框,每次只能选择1个文件,上传文件就开始进行导入。
导入后,程序同步处理,添加个加载状态,当有毛病数据时,则报错提示。
导入成功后,加个“导入成功”的提示。
其它的交互方式大家可以搜搜看,有很多。
由于我们对数据要求很严格,所以我们添加了日志记录,用于数据清查。
在我们系统中,数据导入后,需要将导入的数据提交给审核人员进行审核,所以我们在导入成功后,添加了“提交审核”的功能,用户可以直接提交数据去审核。
为了保证流程的流畅,我们可以在导入完成后,提供接下来的功能操作入口。
说了很多,导入excel是常见的基础功能,但是触及到的内容很多,是个细活,从模板制作到校验逻辑,到报错提示,直到数据导入成功。
能把导入excel弄清楚,那我们弄其它数据相干的需求也就so easy 了。
我们再回头看,导入excel其实就是导入到数据库。
当你对数据库有了解,你就会清晰很多,数据库有字段格式、长度、是不是为空,外键等要求,这些不就是excel中的校验。
所以还是推荐大家了解数据库的知识来丰富自己~
专栏作家
王大鹿,公众号:产品大鹿,人人都是产品经理专栏作家。关心医疗领域,善于原型设计、需求分析和方案设计,分享能落地的工作技能~
本文原创发布于人人都是产品经理,未经许可,制止转载
题图来自 Unsplash,基于 CC0 协议
该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务
>>>>🚀🌟 点击注册 免费试用 更高级的-英雄云企业级云表单 🌟🚀 😃👉🌐>>>>
在现代企业管理中,数据的高效管理和处理至关重要。随着信息技术的不断发展,英雄云的云表单已经成为了提高数据录入、管理和分析效率的不可或缺的工具。让我们来深入探讨英雄云-云表单的几大优势。
基础字段:多样性满足业务需求
英雄云的云表单中包括了各种基础字段,如单行文本、多行文本、数字输入框、单选框、复选框、下拉框、下拉复选框、日期时间、分割线等。这些字段的多样性使用户可以根据具体的业务需求,轻松进行文本、数据和时间信息的录入或修改。例如,您可以使用单行文本字段录入员工姓名、产品型号等,或者使用下拉框进行多选,根据不同情况选择更加方便的字段类型。
高级字段:提升工作效率
英雄云的云表单还提供了高级字段,如地址、图片、附件、手写签名、手机、子表、关联数据、关联查询以及流水号。这些高级字段在基础字段的基础上升级,可帮助用户完成一些琐碎的工作。例如,使用地址字段可以避免逐字打字,而流水号字段可以自动生成规律性的编号,非常适用于合同编号生成等场景。
部门成员字段:精确管理与通讯录的关联
英雄云的部门成员字段允许企业对各个部门的成员进行精确管理。用户可以通过部门成员字段获取通讯录中的部门成员信息,应用于记录报销人、报销部门等场景。这些成员字段还细分为成员单选和成员多选,可根据具体需求在通讯录中选择一个或多个成员。
聚合表:数据处理更智能
英雄云的聚合表功能用于对已存在的表单数据进行聚合计算,从而得到一张聚合表,后续其他表单可调用聚合表进行数据联动、关联查询和关联数据等操作完成数据处理。这一功能可应用于多种场景,如进销存管理、财务管理和门店零售管理等,帮助企业完成数据处理,提高工作效率。
表单权限设置:灵活管理数据访问
英雄云的表单权限设置允许用户根据企业的具体需求管理表单的访问和操作权限。用户可以根据系统权限或自定义权限对不同成员或团队进行权限设置,以确保数据的安全和合规性。这一功能使企业能够根据变化的业务需求和团队结构,实时调整权限设置。
自定义打印模板:文档输出更便捷
英雄云的云表单支持自定义打印模板,可将表单数据转换为可打印的Word文档。用户可以根据自己的需求进行排版和编辑,将产品规格说明书等文档轻松生成。这一功能提供了一种标准化的文档输出方式,简化了信息整理的过程。
综合来看,选择英雄云的云表单意味着选择更智能、更灵活、更高效的数据管理工具。无论是提高工作效率,精确管理数据,还是实现数据处理,英雄云的云表单都能满足您的多样化需求,助力您的业务发展。
如果您正在寻找一款强大的云表单工具,不妨考虑英雄云,它将为您带来更多的便捷和智能,助您事半功倍。
免责声明:
本网址(www.yingxiongyun.com)发布的材料主要源于独立创作和网友匿名投稿等来源。此处提供的所有信息仅供参考之用。我们致力于提供准确且可信的信息,但不对材料的完整性或真实性作出任何保证。用户应自行验证相关信息的正确性,并对其决策承担全部责任。对于由于信息的错误、不准确或遗漏所造成的任何损失,本网址不承担任何法律责任。本网站所展示的所有内容,如文字、图像、标志、音频、视频、软件和程序等的版权均属于原创作者。如果任何组织或个人认为网站内容可能侵犯其知识产权,或包含不准确之处,请即刻联系我们进行相应处理。
发表评论
暂时没有评论,来抢沙发吧~