一、实现功能
将创建好的Excel文件内容导入到渲染好的表格中;
初始状态如下:
图一:点击导入的初始状态
功能介绍:如图点击导入按钮弹出导入学生的模态窗体内容如图一,1.将想要的模板提前准备好点击下载按钮经过控制器代码执行判断返回文件如图二
如图二:判断模板导入
思路:1、获取读取的文件;
4、利用NPOI把内存流中的数据读取成Excel
将模板成功导入后,点击选择文件弹出文件夹,选择你的模板
图三:模板的选择
2、把文件转换为二进制数组并将二进制数组转成内存流如图四;
图四
然后获取第一个工作表,通过 PhysicalNumberOfRows 获取的是物理行数,也就是不包括那些空行(隔行)的情况。
判断工作表中是否有数据如果有数据就先将数据先装到datatable中
定义datatable
DataTable dtExcel = new DataTable();
FirstCellNum:获取某行第一个单元格下标
LastCellNum:获取某行的列数
FirstRowNum:获取第一个实际行的下标
LastRowNum:获取最后一个实际行的下标
通过遍历行中的每一个单元格,获取标题行各个单元格的数据
rowHeader.GetCell(i).StringCellValue
DataColumn dtColumn = new DataColumn(rowHeader.GetCell(i).StringCellValue);
将获取到的标题行的数据放到datatable中:dtExcel.Columns.Add(dtColumn);
图五
遍历 根据名称匹配 学院ID 专业ID 年级ID 班级ID通过dataTable中的AcademeName到dbAcademe中查找相应的AcademeID
row["学院"].ToString().Trim(); 获取到学院的名称
同理 专业,年级一样通过dataTable中获取相应的ID班级根据学院ID&专业ID&班级名称获取班级ID
重点代码:
图六