数据的导出
怎样完成数据导出到Excel表格中,下面我们来实现这个导出的功能,首先我们要获取到当前表格数据筛选的条件,当前表格中获取到的数据条件如下图所示:
获取到筛选条件后,判断条件是否为空或者undefined,为了它传到控制器不报错就让它的ID = 0,判断StudentDetail是否等于undefined如果等于,StudentDetail等于空,因为StudentDetail是字符串不是ID,如下代码:
if (AcademeID == "" || AcademeID == undefined) {
AcademeID = 0;
}
if (GradeID == "" || GradeID == undefined) {
GradeID = 0;
}
if (ClassID == "" || ClassID == undefined) {
ClassID = 0;
}
if (StudentDetail == undefined) {
StudentDetail = "";
}
然后到控制器写他的方法,首先是写他的查询的方法查询出所需要导出的表格数据,如下图用
六个表中查询出我们所要的数据,就可以把查询出来的数据导出来,但为了更快的找到我们需要的数据,我们给他传四个参数来筛选出我们所要导出的数据。
查询到我们要导出的数据后,创建Excel工作簿再创建一个工作表来装导出的数据,设置一下工作表的表头;如下:
HSSFWorkbook excelBook = new HSSFWorkbook();
NPOI.SS.UserModel.ISheet sheet1 = excelBook.CreateSheet("考生信息");
NPOI.SS.UserModel.IRow row1 = sheet1.CreateRow(0);
row1.CreateCell(0).SetCellValue("学号");
row1.CreateCell(1).SetCellValue("姓名");
row1.CreateCell(2).SetCellValue("身份证号");
row1.CreateCell(3).SetCellValue("性别");
row1.CreateCell(4).SetCellValue("学院");
row1.CreateCell(5).SetCellValue("专业");
row1.CreateCell(6).SetCellValue("年级");
row1.CreateCell(7).SetCellValue("班级");
row1.CreateCell(8).SetCellValue("账号");
给Excel表格添加数据,导出的数据有多少行就添加多少行数据,然后给导出的Excel表格命名,后转为内存流再将Excel文件写入内存流中;
为了避免导错数据我们给他设置一个提示框,在点击导出按钮时会弹出一个提示框提示你“是否要导出当前表格中的数据,是请点击确定按钮,否则请筛选需要导出的数据!”,这样就不会在点击导出数据的按钮数据就直接导出到Excel表格中。这样就完成把数据导出Excel表格的功能了。
layer.confirm("是否要导出当前表格中的数据,是请点击确定按钮,否则请筛选需要导出的数据!", { icon: 3, title: "提示" }, function () {
window.open("ExportToExcel?AcademeID=" + AcademeID + "&GradeID=" + GradeID + "&ClassID=" + ClassID + "&StudentDetail=" + StudentDetail);
});