MVC的导入技术分享

开发工具与关键技术:VS,MVC
作者:陈梅
撰写时间:2019年5月5日
图片代码来源于老师教程
在MVC做项目中,除了用到导出,肯定就要用到导入技术了。导入就是读取Excel表格里的数据,导入与导出的格式一样。我们做导入时,还要做一个导入的模态框,用于检验导入的数据是否正确。所以要借助模态框检查数据是否与已有数据一样。导入模态框的样式布局就不多说了,就是头部与内容,还要弄一个临时的Excel表格,用于检验数据。因为用到了layui的格式表格,所以要用到渲染方式,根据自己的喜好能做出来就行了。弄好模态框后,就隐藏模态框,使导入的按钮能进行点击事件,所以还要给导入按钮写一个点击事件。
现在我们来看一下导入的下载模板的控制器代码部分:
在这里插入图片描述
导入的模板控制器的代码不多,但也是常用的。我们的目的就是要下载模板,所以我们就写一个模板控制器的代码。我们要把文件传输到视图,所以DownImportTemplate()括号里要与视图的或导出的文件名一致。用string获取表的路径,Server是服务器的意思,文件都是要转化成流才能传输,导入的文件也不例外。文件转化成流都是要用到IO,然后就进行判断,判断是否读取到文件,如果读取不到就要有个提示。如果有,就把文件返回,获取到文件。下载导入模板,事先就要有模板才能下载。然后给已写好的模态框里的下载导入模板的按钮写一个函数,代码简单,在这里我就不显示视图代码的部分出来了。只是需要获取路径另起一个页面就可以了,下载好模板就可以在表格中填入数据了,填好数据就可以进行读取数据。
接下来我们要验证导入进来的数据是否与已有的数据一致,如果一致就不能导入进来。然后我们在写一个控制器的代码。这次控制器的代码比较多,因为要做多重的判断。代码部分比较多,用到的知识点也就是常见的判断。先判断传输过来的数据有没有工作薄和工作表。再判断表中有没有数据然后再判断数据和已有数据是否有重复的数据。最后判断是否读取导数据,数据是否保存到视图上的功能。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
我们先判断工作薄和工作表是否存在,由于Excel表格的格式有几种,所以我们要进行判断Excel表格是否是我们需要的Excel表格。我们导入Excel表格的格式是.xls的格式,其他格式的都不能导入到我们需要的地方。所以就需要到判断文件类型的写法。GetExtension就是Excel表格的格式.xls。然后再进行判断,判断表格的格式是否是我们想要的。读取数据,就要把文件转换为二进制数组。再把二进制数组转换成内存流的格式。所以在判断文件格式是就要把文件转换成二进制数组格式,再转换成内存流,最后再用插件把内存流再转换成工作薄,然后就可以进行下一步的操作了。做完转换的步骤之后,就是要进行查询数据,查询学院表、专业表、年级表、班级表的多表查询,用来获取表中的相对应的ID的。然后再获取工作表,然后就开始判断工作表中是否有数据,如果没数据,我们的导入就没有意义了。因为是多表,所以还要准确的判断每个表的数据。我们要使数据能准确,就要建一个DataTable的类,然后引用这个类。要将数据事先就转进DataTable中,然后再获取数据的几行和几列。我们判断数据要从第一行就要开始判断,就是从表头就开始判断,判断表中是否有数据,如果没数据,表就是空白的表。如果表中有数据,就要验证数据的准确性。然后再用for循环进行判断几行几列的问题。其实主要判断的就是要用到的表中的数据是否重复,和为空,还有表与表之间的关系。我们读取数据是需要一个数据一个数据的读取,所以判断时9列,就要循环判断9次。读取完数据之后们还要进行最后的判断数据的准确性,主要看的导入进来的数据是否与数据库里的数据重复,和表里的数据是否不一样,例如学院表的数据,必须全是学院,而不是什么年纪的数据,和其他无关的数据,而且还数据库里有的数据才行,数据库里面有的数据就不能导入进来。这个导入的控制器代码就是重重判断,判断的数据巨多,所以逻辑思维也要很清晰。最后就是提示成功导入了多少条数据和失败导入多少条。
最后视图的代码就不展现来看了。主要就在这说一下就行了。视图的代码要用到一个jQuery的插件里的一个方法来提取数据。然后我们的文件链接是写在from表单里的,提交是用post的义务提交的方法。我们匹配数据时,需要把匹配到的数据给用户看到。所以我们还要先查询数据一样做一个表格和分页操作,在控制里还要写一个分页操作,然后再在视图中进行绑定表格,导入也要进行执行渲染的步骤,所以还要给导入的表格执行渲染。我最后就
看一下最后的效果怎样。
在这里插入图片描述
点击导入的按钮,就弹出一个导入的模态框,然后先下载自己想要的模板,点击Browse再使用模板,就会自动把数据筛选,查询,进行判断,然后进行里一系列的事情后就可以匹配出来的数据进行导入了,也可以点击导入到数据库的按钮,把数据导入到数据库中。这样一个导入的技术分享就完成了,在这里我有很多功能都没展现出来,视图的代码块的地方也没显示出,自己回去的时候可以好好研究研究,并显示出该有的功能出来。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值