文件导入

把文档数据导入数据库:
这里写一个把文档的数据导入数据库的方法,这个方法需要随便一个模板
还有为了兼容性,这个模板的后缀需要用( .xls )

导入部分思路

  1. 获取上传的文件
  2. 把文件转换为二进制数组
  3. 二进制数组转成内存流
  4. 利用NPOI把内存流中的数据读取成Excel
  5. 使用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();保存更改
文件导入

然后设置状态为真,再把提示返回页面
文件导入

由回调函数接收控制器传过来的值
然后弹出提示,提示用户成功还是失败