开发工具与关键技术:VS , ASP.NET.MVC;
作者:吴维杰
撰写时间:2019.05.16
页面部分:
首先获取当前表格数据的筛选条件,
var AcademeID = $("#searchAcademeID").val();
var GradeID = $("#searchGradeID").val();
var ClassID = $("#searchClassID").val();
var StudentDetail = $("#searchStudentNumber").val();
然后经过多种判断,判断数据在空值和未声明的变量下,让数据赋值为0.
最后在新标签页打开下载excel的url,和下载excel的文件.
把在控制器的导出数据到Excel表格的方法引入到页面去.
window.open("ExportToExcel?AcademeID=" + AcademeID + "&GradeID=" + GradeID + "&ClassID=" + ClassID + "&StudentDetail=" + StudentDetail);
控制器部分:
首先查询出数据,再用Lambda表达式作出条件的筛选.
思路:要把数据导出到Excel表格.肯定先要制作出Excel表.
1. 创建Excel工作簿
HSSFWorkbook excelBook = new HSSFWorkbook();
2. 在工作簿中创建工作表,并为工作表命名
NPOI.SS.UserModel.ISheet sheet1 = excelBook.CreateSheet("考生信息");
3. 创建表头行
NPOI.SS.UserModel.IRow row1 = sheet1.CreateRow(0);
4.设置表头
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("账号");
5. 写入表格数据
for (var i=0;i<listStudent.Count();i++)
{
创建行
NPOI.SS.UserModel.IRow rowTemp = sheet1.CreateRow(i+1);
写入数据
rowTemp.CreateCell(0).SetCellValue(listStudent[i].StudentNumber);
rowTemp.CreateCell(1).SetCellValue(listStudent[i].StudentName);
rowTemp.CreateCell(2).SetCellValue(listStudent[i].StudentIDNum);
rowTemp.CreateCell(3).SetCellValue(listStudent[i].StudentSex);
rowTemp.CreateCell(4).SetCellValue(listStudent[i].AcademeName);
rowTemp.CreateCell(5).SetCellValue(listStudent[i].SpecialtyName);
rowTemp.CreateCell(6).SetCellValue(listStudent[i].GradeName);
rowTemp.CreateCell(7).SetCellValue(listStudent[i].ClassName);
rowTemp.CreateCell(8).SetCellValue(listStudent[i].UserNuber);}
6. 文件名
string fileName = "考生信息" + DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss-ffff") + ".xls";
7.将Excel表格转化为流,输出
创建文件流
MemoryStream bookStream = new MemoryStream();
8.将文件写入流(向流中写入字节序列)
excelBook.Write(bookStream);
9.输出之前调用Seek
bookStream.Seek(0,SeekOrigin.Begin);
return File(bookStream, "application/vnd.ms-excel",fileName);
最后经过多种判断后把在模态框中选中的数据导入到Excel表格中去.