额,研究过这个,一般最后的结果是基本上没扩展性。因为要考虑到用户的体验,就要满足用户最基本的数据要求,所以对EXCEL模板的数据格式,乃至标题都做了类似于一一对应的判断,这样做的好处在于能保证用户数据的有效性,剔除无效数据,减少维护。但很悲催的就是,基本上没法扩展。模板一变,代码也要变。另外,关于导入速度的问题,如果数据量比较少,比如说几千条左右,用这种方式没问题,因为时间也就几秒钟。但是如果数据量很大,比如几十万条,上百万条,就不能用这种方式了。因为,数据太多的话,传输和存储都需要消耗大量的资源,这时候我们需要考虑数据存储过程中的意外情况,比如断点存储,延时存储,批量存储等,这一般需要使用专门的中间构件。
和我想的大体是一样的。但想看看有没有好的方法!
最优方案暂时没研究。
1.通过上传插件上传excel到服务器。
2.通过ado读取数据。
3.写数据到数据库。
建议:上传文件增加等待和进度提示,读数据和写数据多测试,找到最优方案。至于模板可扩展性这个就要看读和写之间的约定了。
貌似这个只能说实现上传!
一次上传几千条,没有特别做优化,也就是每条去判断数据一致性,最后一次性插入,也就2,3秒的时间。
先用 sqlbulkcopy 把数据批量添加到临时表,在用存储过程来处理 新增或者修改。这样是最快的,但扩展性不太好。