从Excel表格导入数据
在数据导入之前我们先写一个方法,弹出导入数据的模态框。当你打开模态框的时候,数据是为空的状态,接下来我们就要有一个清空的操作。重置表单,获取上面的form表单,然后调用reseFrom方法。同时记得要声明变量接收表格数据,接下来对表格数据进行渲染,渲染完的内容统一放在全局变量 tabStudentImporrt里面。
接下来要进行表格数据的重载,这样每次打开表格的数据都是显示空的,不会显示有数据的
tabStudentImport.reload({
url:””,
data:[]
});
还有一步操作就是,你没有把数据放到临时表的时候,是无法把数据导入到数据库的,要导入数据到数据库首先就要把数据导入到临时表格里面,第二步再导入到数据库。
还有就是点击背景或者esc按键不关闭模态框的操作,我们一般的页面都是点击模态框以外的部分都会关闭模态框的,但是这里我们对其进行设置一下,只有点击模态框关闭按钮才会进行关闭,代码如下:
$(“#modImportExaminee”).modal({
Backdrop:false,
Keyhoard:false
});
当你点击选择文件的时候,它默认显示的文件内容,我们可以设置选择文件的类型,后台会根据你设置的文件类型进行显示文件
下面为设置的代码还有显示效果截图
将导入的Excel表格的数据保存到session中
第一步我们要先理解清楚它的思路,不理解思路是很难理解它代码的意思的
1、 获取读取的文件
2、 把文件转换为二进制数组
3、 二进制数组转成内存流
4、 利用NPOI把内存流中的数据读取成Excel格式
还要进行判断一下文件是否为Excel表格的文件类型
If(“.xls”.Equals(fileExtension) || “.xls”.Equals(fileExtension) || “.xlsx”.Equals(fileExtension)){
}
Catch((Exception)
{
returnJson.State = false;
returnJson.Text = “上传失败,类型不对应/检查是否有工作表/检查是否有数据!”;
}
声明类型变量
Byte[]fileBytes = new byte[file.CountentLength];
转化二进制数组
File.InputStream.Read(fileBytes,0,file.ContentLength);
将二进制数组fileBytes转成内存流
MemoryStream excelFileStream = new MemoryStream(fileBytes);
将内存流转化为工作簿
NPOI.SS.UserModel.Workbook workbook = new NPOI.HSSF.UserModel.HSSFWorkbook()
}