项目经验之:再来一章:excel导入数据 封装成最棒的不容易!!!
2013-12-20 17:52
302 查看
我见过很的系统,包括OA,ERP,CRM等,在常用的功能当中,从外部导入数据是最常用到的。因为很多客户需要以excel的形式提供数据,,
这样的方式我们又如何做呢,
大家最常见的做法可能是这样的,在需要导入信息的界面提供一个模版,要求客户参照模块的形式提供数据,这是最常见的,也是用得最多的一种方式,如下图所示。。可能只有几个字段
我不能说这种方式不对。但我只说这种方式对于客户方来说是最不人性化的,也是最不理合的。不合理在几个方面
1,客户方提供的Excel数据有可能是文本文件,然后更名成 xls 结尾的文件
2,客户方提供的Excel数据的列表头,如 客户名称,姓名 这些他不叫 客户名称,可能 客户NAME 等 其它表头
3,客户方提供的Excel数据顺序也可能是不固定的
4,客户方提供的Excel数据有可能是空值,可能有些数据不合理,如手机号,电话等!
5,客户方提供的Excel数据过大
这些常见的问题,,大家在导入数据时又是如何处理呢???
好了,我就说说我最近在项目中做的导入思路吧
模拟客户方提供数据:
在点击导入时我做个层形式,将Excel数据取出来,与我要插入的表结构做一个映射关系!《到这时,大家可能有些印象,这不是就SQL中导入数据的一样操作吗?》
是的没错,我就是参照了SQL导入数据的实例而做的。。方便之处,大家就不用我说了,这里可能只是没有做到数据类型的转换。。
接下来点击确认保存,如这些数据出现问题,我会给出一个提示:
而到了这里,客户方就可以根据我提供的错误数据明细去排查他给出的Excel数据,这样不就是客户方想要的吗
所有的有关数据出错明细都打出来让客户去下载,,解决上面的几点客户方的要求。。
代码在接下有空的时间给出。。
这样的方式我们又如何做呢,
大家最常见的做法可能是这样的,在需要导入信息的界面提供一个模版,要求客户参照模块的形式提供数据,这是最常见的,也是用得最多的一种方式,如下图所示。。可能只有几个字段
我不能说这种方式不对。但我只说这种方式对于客户方来说是最不人性化的,也是最不理合的。不合理在几个方面
1,客户方提供的Excel数据有可能是文本文件,然后更名成 xls 结尾的文件
2,客户方提供的Excel数据的列表头,如 客户名称,姓名 这些他不叫 客户名称,可能 客户NAME 等 其它表头
3,客户方提供的Excel数据顺序也可能是不固定的
4,客户方提供的Excel数据有可能是空值,可能有些数据不合理,如手机号,电话等!
5,客户方提供的Excel数据过大
这些常见的问题,,大家在导入数据时又是如何处理呢???
好了,我就说说我最近在项目中做的导入思路吧
模拟客户方提供数据:
在点击导入时我做个层形式,将Excel数据取出来,与我要插入的表结构做一个映射关系!《到这时,大家可能有些印象,这不是就SQL中导入数据的一样操作吗?》
是的没错,我就是参照了SQL导入数据的实例而做的。。方便之处,大家就不用我说了,这里可能只是没有做到数据类型的转换。。
接下来点击确认保存,如这些数据出现问题,我会给出一个提示:
而到了这里,客户方就可以根据我提供的错误数据明细去排查他给出的Excel数据,这样不就是客户方想要的吗
所有的有关数据出错明细都打出来让客户去下载,,解决上面的几点客户方的要求。。
代码在接下有空的时间给出。。
相关文章推荐
- DTO--数据传输对象
- 图解SQL的inner join、left join、right join、full outer join、union、union all的区别
- Chrome Timeline的指标说明:Blocked、Connect、Send、Wait、Receive
- 初学javascript《一》break和continue的标签问题
- class按传递时分析
- loganalyzer中文日志乱码的解决办法
- android4.0以上版本关于socket 真机连接问题
- msm 8x10 modem 編譯脚本
- jQuery插件的编写和使用 <思维导图>
- 重力感应示例
- msm 8x10 modem 編譯脚本
- 痛苦
- android之路,service学习
- 微笑着面对未来的风风雨雨
- 2012年Elsevier旗下Computer Science期刊最新SCI影响因子排名
- Android Log的使用
- 用C#实现木马程序
- Jeasyframe 开源框架 V1.6 发布
- VS2010新建Web网站与新建Web应用程序的区别 (转)
- c 题目