文件导入
把文档数据导入数据库:
这里写一个把文档的数据导入数据库的方法,这个方法需要随便一个模板
还有为了兼容性,这个模板的后缀需要用( .xls )
导入部分思路
- 获取上传的文件
- 把文件转换为二进制数组
- 二进制数组转成内存流
- 利用NPOI把内存流中的数据读取成Excel
- 使用NPOI读取数据
首先用一个input框获取到后缀为( .xls )的文件
然后获取到input框的第一个文件
使用XMLHttpRequest上传文件
先创建FormData对象,FormData里面用来放我们需要的数据
然后把数据添加到FormData
再创建XMLHttpRequest对象,用来打开指定的Url,
指定提交的方式(post),和提交的路径(文件上传都
是用post提交,不能用get提交,用get提交会出问题)
这里还需要设置一个回调函数,无论上传成功与否,都会回到这个回调函数这里
然后发送数据
再把上面的excelFile传过来
这样就把数据提交到控制器这边
在控制器这边先判断一下文件是否符合规范,不符合规范则需要用户重新上传
成功获取到文件后就把文件转换成二进制的数组
转换的二进制数组的大小要和文件的大小一致
Read() 把数据读到二进制数组里面,
0 是从第一个位置开始读
fileBytes.Length 是从什么位置结束(结束位置由数组的长度决定)
再把二进制的数组转为内存流
利用NPOI把内存流中的数据读取成Excel
获取到工作簿后再获取到工作表,下面就是一系列的数据读取
数据读取就需要根据表格的行和列去写他的代码
(表格简单的代码就少,表格复杂的代码就多,这里就不演示了)
然后就是数据保存,数据导入是以新增的形式保存到数据库
(S_User)是要把数据保存到数据库的那一张表
(saveUser)则是要保存的数据
SaveChanges();保存更改
然后设置状态为真,再把提示返回页面
由回调函数接收控制器传过来的值
然后弹出提示,提示用户成功还是失败