第一步是完成一个模态框的打开功能,因为这功能一般是放在一个模态框里面实行的。然后我们还需要在这个模态框打开的同时,给上几个方法。重载表单和清空临时表的方法是必须要写的,因为这有这样才能加载出新的一个表单的内容。我们需要加载内容的表单是一个临时表,只是为了让我们看一下我们所载入的内容具体有哪些,所以还得声明一个全局变量和初始化表单。然后为了避免我们失误保存了不必要的数据进入数据库,我们还可以给一个写一个禁用保存到数据库的按钮的方法,也就是设置disabled的值为true就可以了。还有就是当我们在载入数据时不小心点了一下背景导致模态框关闭,这时候又要重新去点击一下模态框了。为了避免这样的麻烦操作,我们可以设置一个点击背景不关闭模态框的方法,也就是给一个backdrop的值设置为false。
第二步就是下载模板,我们先下载模板的按钮给一个点击事件onclice,然后就是一个打开下载的方法 ,一般用的是window.open加控制器方法的路径,这一步主要是控制器编写的内容。
这是我们导入考试信息的一个导入方法。
我们需要先获取导入的模板的路径,然后就是写一个判断,判断模板的路径是否存在。我们把获取到的模板的路径放到Exists里面就能判断模板路径是否存在,存在后再获取文件名称,然后返回文件return File。File有3个参数:
第一个:使用Stream对象、内容类型和目标文件名创建一个FilestreamResult对象 ,这里也就newFileSteeam 然后它也有两参数:第一个使用指定的路径和创建模式初始化Systen.Io.FileStream类的新实列,这里也就是我们获取到filePath,第二个是打开当前文件的方式。
第二个:内容类型
第三个:fileDownloadName: 浏览器中显示的文件下载对话框要使用的文件名。
方法写到这里后就行实现下载的功能了。
第三步上传Execl表格,保存到临时表。我们先写一个判断,用来避免取消文件后触发上传的功能,然后就是提交表单的方法,同样需要到控制器写方法,这是相对来说比较复杂的一个方法。
内容介绍:先new一个returnJson,用判断数据是否异常。我们用的HttpPostedFileBase来接收页面传过来的图片文件。
内容大致思路步骤:
第一步:我们需要获取读取的文件。
第二步:把文件转换为二进制数组。
第三步:二进制数组转成内存流。
第四步:利用NPOI把内存流中的数据读取成Excel。
NPOI的作用就是可以保证在没有安装offic时,去读写Execl文件,用它的时候也需要添加这个NPOI的引用。
开始获取文件前我们需要把Session中的ImportExcel移除避免残留以前数据: Session.Remove(“ImportExcel”);
然后开始内容:获取文件的后缀名
string fileExtension = System.IO.Path.GetExtension(file.FileName);
再写一个文件类型判断,判断的开始就是声明二进制数组存放文件,接着将文件转化为二进制数组并存入FileBytes,然后就是将二进制的数组转化为内存流,转化成内存流后再转化为工作薄,再判断工作薄中是否有工作表。
FirstCellNum:获取某行第一个单元格下标
LastCellNum:获取某行的列数
FirstRowNum:获取第一个实际行的下标
LastRowNum:获取最后一个实际行的下标
还有声明2个变量,记录成功和失败数据的条数
最后就是遍历datatable 中的数据和创建studentvo对象保存每一条数据。
第三步我们还需要写一个方法用来提取Session中的数据,并进行分页操作
第四步就是保存导入的Excel表格数据到数据库,就是一个打开加载层的方法和请求保存导入的数据的url。控制器保存的方法也就是新增保存的判断,开始声明两参数记录保存成功的数据条数和因于数据库已有数据重复而保存失败的数据条数,然后开始判断数据是否与数据库中已有数据重复。
Excel数据的导入
最新推荐文章于 2022-08-10 15:57:20 发布