开发工具与关键技术:Visual Studio、MVC
作者:幻奏
撰写时间:2019.5.3
在平常的生活中,我们可能需要添加大量的数据,这时一条一条地新增肯定不能满足我们的要求了,所以我们就需要批量导入数据了。现在我就来大概说一下是怎么导入数据的。
我们要导入数据肯定要模板吧,因为不可能随便写下就可以导入数据的,肯定要合适的格式才可以,不然会出错的,所以第一件事就是要下载模板。
首先我们要在视图写打开一个下载的窗口,并在窗口装载了指定的路径。
控制器那里我们要获取模板的路径
然后我们要判断模板是否存在
存在了就获取文件的名称并且返回文件
下载模板就写好了,我们只需要按照模板的样式写数据就可以了。
当我们把模板写好后我们就要导入数据到数据库了,这时我们要先把导入的Excel表格的数据保存到session中。
1、 获取读取的文件
2、 把文件转换为二进制数组
3、 二进制数组转成内存流
4、 利用NPOI把内存流中的数据读取成Excel
在这里我们要引用NPOI,关于它的用法你们自己上网找,我就不多说了。
我们上传表格的数据肯定需要提交表单,表格的数据重载这些,我就不多说了,前面我已经说了很多次了。
控制器那边我们先把session中的ImportExcel移除避免残留以前数据。
Session.Remove(“ImportExcel”);
判断页面传过来的文件是否为Excel表格,根据它的后缀判断。
声明二进制数组存放文件再把将传入的文件转化为二进制的数组存入fileBytes中,将二进制的数组转化为内存流再把内存流转化为工作簿。
之后我们要判断工作簿中是否有工作表,没有就用ISheet创建
有工作表了之后我们再创建表头行,并添加数据。我们使用IRow创建行,用DataColumn创建单元格。
然后再为Excel表格添加内容,我们使用for循环的方式把数据一条一条的添加到里面去。
接下来我们要提取Session中的数据、并进行分页操作,这个我前面也说过了,就不再重复了,你们自己去看一下吧。保存数据到数据库和新增差不多,我也说过了,一样也是要判断是否有重复的数据,重复了就不添加到数据库里面去。导入数据大概就是这个样子了,可能我说的有点简单,要是有什么地方漏了请你们帮忙指出来啊(ૢ˃ꌂ˂⁎)