C#导入Excel表格数据

C#导入Excel表格数据

开发工具与关键技术:VS、MVC
作者:小赵
撰写时间:2019/4/10

导入数据用bootstrap-4.1.3-dist前段框架的模态框搭建的导入页面的窗体,通过触发页面的按钮弹出模态框,其弹出模态框、关闭模态框的方法框架的内部已经定义好调用方法就可以;弹出模态框,要重置from表单,以防上次打开的数据遗留;找到打开模态框的按钮,给这个按钮一个点击事件,找到要弹出的模态框用model(“show”)触发模态框弹出。导入Excel表格数据要根据其数据模板定义好的规则导入,通过触发按钮导入数据;刚弹出导入的模态框是没有数据的,所以导入到数据库的按钮要禁用,当表格有数据的时候才启用。打开模态框的代码、模态框的内容效果如下截图:

在这里插入图片描述
在这里插入图片描述
一、 下载导入考生信息的模板

1、 把建好的模板放在当前项目的文件夹里
2、 通过代码找到模板
3、 代码实现给用户下载模板,填写信息导入
用IO流读取文件,判断模板文件是否存在;获取文件名称,以文件的格式返回数据;
注意:在模板添加考生信息时,数据之间的关系要以数据库的关系对应,确保数据的准确性
其方法代码、表格模板截图如下:

在这里插入图片描述
在这里插入图片描述
二、 导入的方法
方法的大致思路如下:
1、判断文件类型是不是.xls格式
(1)获取读取的文件;
(2)把文件转换为二进制数组;(3)二进制数组转成内存流;(4)利用NPOI把内存流中的数据读取成工作簿Excel
导入的数据临时存放于Session中,获取文件之前要清空临时存储数据的Session,以防Session残留以前的数据;获取文件的后缀,判断文件的后缀名是否是“.xls/.XLS”格式;声明一个二进制的数组存放文件,把文件以流的形式读取文件并传入二进制数组存放,再将二进制数组转化为内存流,由NPOI插件的方法将内存流转化为工作簿。其整个转换过程代码如下截图:
在这里插入图片描述
2、 判断工作簿中是否有工作表
在这里插入图片描述
3、判断工作表是否有数据 4、判断数据准确性(学院、专业、年级、班级、表跟表之间的关系)
在这里插入图片描述
在这里插入图片描述
5、数据都有,然后读取数据,把数据临时存放Session。
在这里插入图片描述
三、 把导入的数据临时存放Session,将Session中的数据进行分页操作
调用封装的分页类,实例化一个对象列表,判断Session中的数据是否为空;不为空,把Session中的数据赋值给刚实例化的对象列表;把数据进行分页的操作,分页前要把数据进行排序,最后返回分页数据;其代码如下截图所示:
在这里插入图片描述
四、 保存导入的数据(批量新增)
导入数据成功,还需要把数据保存,保存数据的过程、结果都相当于是新增数据,因导入的数据是批量性的,所以保存的数据也是批量性,无意之中就是一个批量新增数据的过程。新增数据要做到几个步骤:1、判断页面要新增保存的数据是否为空2、判断新增的数据是否已存在,即检查新增的数据是否出现重复3、保存数据的操作、判断保存数据是否成功4、把保存的结果返回给用户。其新增保存的过程代码如下截图:
在这里插入图片描述
五、 模板导入数据的效果
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44519188/article/details/89260445