数据导出

数据导出在控制器里的代码:
public ActionResult ExportExamineeByID(int AcademeID, int GradeID, int ClassID)
{
List listStudent = (from tbStudent in myModel.PW_Student
join tbAcademe in myModel.SYS_Academe on tbStudent.AcademeID equals tbAcademe.AcademeID
join tbGrade in myModel.SYS_Grade on tbStudent.GradeID equals tbGrade.GradeID
join tbClass in myModel.SYS_Class on tbStudent.ClassID equals tbClass.ClassID
join tbUser in myModel.PW_User on tbStudent.UserID equals tbUser.UserID
join tbSpecialty in myModel.SYS_Specialty on tbStudent.SpecialtyID equals tbSpecialty.SpecialtyID
where tbUser.ToVoidNo == true
select new StudentUserInfors
{
studentID = tbStudent.studentID,
StudentNumber = tbStudent.StudentNumber,
StudentName = tbStudent.StudentName,
StudentIDNum = tbStudent.StudentIDNum,
StudentSex = tbStudent.StudentSex,
AcademeName = tbAcademe.AcademeName,
SpecialtyName = tbSpecialty.SpecialtyName,
GradeName = tbGrade.GradeName,
ClassName = tbClass.ClassName,
UserNuber = tbUser.UserNuber,
AcademeID = tbStudent.AcademeID,
GradeID = tbStudent.GradeID,
ClassID = tbStudent.ClassID
}).ToList();
if (AcademeID>0)
{
listStudent = listStudent.Where(m => m.AcademeID == AcademeID).ToList();
}
if (GradeID > 0)
{
listStudent = listStudent.Where(m => m.GradeID == GradeID).ToList();
}
if (ClassID > 0)
{
listStudent = listStudent.Where(m => m.ClassID == ClassID).ToList();
}
NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook();
NPOI.SS.UserModel.ISheet sheet = book.CreateSheet();
NPOI.SS.UserModel.IRow row1 = sheet.CreateRow(0);
row1.CreateCell(0).SetCellValue(“学生ID”);
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(“班级”);
row1.CreateCell(9).SetCellValue(“账号”);
sheet.SetColumnWidth(3, 20 * 256);
sheet.SetColumnWidth(5, 20 * 256);
sheet.SetColumnWidth(6, 20 * 256);
for (int i = 0; i < listStudent.Count; i++) {
NPOI.SS.UserModel.IRow row = sheet.CreateRow(i+1);
row.CreateCell(0).SetCellValue(listStudent[i].studentID.ToString());
if (listStudent[i].StudentNumber == null)
{
row.CreateCell(1).SetCellValue(0);
}
else {
row.CreateCell(1).SetCellValue(listStudent[i].StudentNumber);
}
if (listStudent[i].StudentName == null)
{
row.CreateCell(2).SetCellValue(0);
}
else
{
row.CreateCell(2).SetCellValue(listStudent[i].StudentName);
}
if (listStudent[i].StudentIDNum == null)
{
row.CreateCell(3).SetCellValue(0);
}
else
{
row.CreateCell(3).SetCellValue(listStudent[i].StudentIDNum);
}
if (listStudent[i].StudentSex == null)
{
row.CreateCell(4).SetCellValue(0);
}
else
{
row.CreateCell(4).SetCellValue(listStudent[i].StudentSex);
}
if (listStudent[i].AcademeName == null)
{
row.CreateCell(5).SetCellValue(0);
}
else
{
row.CreateCell(5).SetCellValue(listStudent[i].AcademeName);
}
if (listStudent[i].SpecialtyName == null)
{
row.CreateCell(6).SetCellValue(0);
}
else
{
row.CreateCell(6).SetCellValue(listStudent[i].SpecialtyName);
}
if (listStudent[i].GradeName == null)
{
row.CreateCell(7).SetCellValue(0);
}
else
{
row.CreateCell(7).SetCellValue(listStudent[i].GradeName);
}
if (listStudent[i].ClassName == null)
{
row.CreateCell(8).SetCellValue(0);
}
else
{
row.CreateCell(8).SetCellValue(listStudent[i].ClassName);
}
if (listStudent[i].UserNuber == null)
{
row.CreateCell(9).SetCellValue(0);
}
else
{
row.CreateCell(9).SetCellValue(listStudent[i].UserNuber);
}
}

string fileName = "数据信息" + DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss-ffff") + ".xls";
MemoryStream BookStream = new MemoryStream();
book.Write(BookStream);
BookStream.Seek(0, SeekOrigin.Begin);
return File(BookStream, "application/vnd.ms-excel", fileName);

}
从一开始到“NPOI.HSSF.UserModel.HSSFWorkbook book = new”之间代码查询需要导出的数据
“NPOI.HSSF.UserModel.HSSFWorkbook book = new”创建Excel对象
下一句就是创建Excel对象工作簿
再下一句到“sheet.SetColumnWidth(3, 20 * 256);”添加第一行的头部标题
三个“sheet”开头的代码是设置需要设置数据列的宽度
For循环语句是给每行添加数据
再下面的“string”开头的是设置输出文件的名称
下一句是将Excel转化为文件流
再下一句将工作簿写入文件流
最后的"application/vnd.ms-excel"指定用Excel来打开
“fileName”是文件的名称

在视图里的代码:
function ImportStuExcel() {
var AcademeID = $("#sltAcademe").val();
var GradeID = $("#sltGrade").val();
var ClassID = $("#sltClass").val();
if ((GradeID == “” || GradeID == null)) {
GradeID = 0;
}
if ((ClassID == “” || ClassID == null)) {
ClassID = 0;
}
if (AcademeID == 0) {
layer.confirm(“是否导出全部数据?若不需要请筛选数据”, { icon: 3, title: ‘提示’ }, function (index) {
layer.close(index);
window.open(“ExportExamineeByID?AcademeID=” + AcademeID + “&GradeID=” + GradeID + “&ClassID=” + ClassID);
});
} else {
window.open(“ExportExamineeByID?AcademeID=” + AcademeID + “&GradeID=” + GradeID + “&ClassID=” + ClassID);
}
}

“if (AcademeID == 0)”判断是否导出全部数据,如果AcademeID等于0的话,就会弹出一个提示框提示你是否导出所有数据:
在这里插入图片描述
如果你点击“确定”就会导出所有数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值