我见过很的系统,包括OA,ERP,CRM等,在常用的功能当中,从外部导入数据是最常用到的。因为很多客户需要以excel的形式提供数据,,
这样的方式我们又如何做呢,

大家最常见的做法可能是这样的,在需要导入信息的界面提供一个模版,要求客户参照模块的形式提供数据,这是最常见的,也是用得最多的一种方式,如下图所示。。可能只有几个字段

我不能说这种方式不对。但我只说这种方式对于客户方来说是最不人性化的,也是最不理合的。不合理在几个方面
1,客户方提供的Excel数据有可能是文本文件,然后更名成 xls 结尾的文件
2,客户方提供的Excel数据的列表头,如 客户名称,姓名 这些他不叫 客户名称,可能 客户NAME 等 其它表头
3,客户方提供的Excel数据顺序也可能是不固定的
4,客户方提供的Excel数据有可能是空值,可能有些数据不合理,如手机号,电话等!
5,客户方提供的Excel数据过大

这些常见的问题,,大家在导入数据时又是如何处理呢???

好了,我就说说我最近在项目中做的导入思路吧

模拟客户方提供数据:

在点击导入时我做个层形式,将Excel数据取出来,与我要插入的表结构做一个映射关系!《到这时,大家可能有些印象,这不是就SQL中导入数据的一样操作吗?》

是的没错,我就是参照了SQL导入数据的实例而做的。。方便之处,大家就不用我说了,这里可能只是没有做到数据类型的转换。。

接下来点击确认保存,如这些数据出现问题,我会给出一个提示:

而到了这里,客户方就可以根据我提供的错误数据明细去排查他给出的Excel数据,这样不就是客户方想要的吗

所有的有关数据出错明细都打出来让客户去下载,,解决上面的几点客户方的要求。。

代码在接下有空的时间给出。。

最新文章

  1. win7如何恢复以前的ie版本
  2. [2016.08.09]文本替换专家 v5.2
  3. 【SPOJ QTREE2】QTREE2 - Query on a tree II(LCA)
  4. java并发编程参考资料
  5. 转 C# 给某个方法设定执行超时时间
  6. requirejs学习之路
  7. windows10UWP开发真机调试时遇到DEP6100和DEP6200解决办法
  8. Hash Table构建
  9. javascript 实现htmlEncode htmlDecode
  10. 设计模式(七):Adapter 适配器模式 -- 结构型模式
  11. Codeforces Round #327 (Div. 1) D. Top Secret Task
  12. why-and-howto-calculate-your-events-per-second
  13. 微信网页签名失败(invalid signature)
  14. 从零开始学Xamarin.Forms(五) 技巧
  15. linux进程通信之共享内存
  16. JS复习:第七章
  17. oledb
  18. xcode打包苹果应用遇到的问题及解决方法
  19. springboot情操陶冶-@Configuration注解解析
  20. ORACLE结构体系篇之表空间详解.md

热门文章

  1. codevs 3732 解方程
  2. P2P直播、点播技术学习经验
  3. ZOJ1260/POJ1364国王(King)
  4. 【转】pdf 中如何把几页缩小成一页打印
  5. border-radius 在安卓手机竟然不完美支持
  6. Java 如何防止线程意外中止
  7. [Everyday Mathematics]20150113
  8. MyGeneration 数据库驱动为空
  9. Dapper.net 在Parameterized时对于String的扩展(转)
  10. cocos2d - CCParallaxNode 例子