在商业系统中,数据导入是非常常见的操作,常用的方法是提供一个 EXCEL 或 CSV 格式的模板,模板中限定了表头,用户在本地通过 EXCEL 编辑后上传文件进行数据的导入。
由于用户填入的数据可能千奇百怪,系统必须对关键数据进行格式的校验,常常存在部分数据合法、部分数据不合法的情况,但上传文件只有一步,无法做到对数据校验的实时反馈,于是就只能在其他环节来避免用户的出错,这里有几个例子供参考。
Google Analytics 的上传文件
Google Analytics 中上传数据后系统会进行离线处理,反馈并不是实时的,待系统处理完成后会提示成功或失败,如果失败,可以查看详细错误。
TrackMaster 中的上传文件
TrackMaster 中可以通过上传文件的方式进行广告位的批量添加和修改,系统会要求用户填写几十个字段,每个字段都有不同的校验规则,我们看看它是如何处理的:
下图是提供的默认的导入模板
可以看到此模板针对性地做了很多优化,主要有以下几点:
- 针对不同的字段,首行通过合并单元格的方式进行了归类
- 必填的字段通过 * 进行了标识
- 通过 EXCEL 的注释对每个字段进行了详细的说明(黄色框部分)
- 涉及到枚举的字段通过 EXCEL 的条件格式进行了限制,同样的方法适用于填写数字、日期等格式,最大程度防止用户填错。
当信息有误时,会提示错误,并且可下载标记哪里错误的 EXCEL 文件
以上的交互实现是非常友好的,更多的系统是直接报错,而且不会告知用户哪里出错,但实现友好的交互和提示需要大量的校验和判断逻辑,甚至还要回写 EXCEL 文件,程序实现上会消耗较多的开发量,在实际项目中需要做好权衡。