数据导出到Excel表格

文献种类:专题技术文献;
开发工具与关键技术: Visual Studio
作者: 吴新洋 ;年级: 1801 ;撰写时间: 2019 年 5 月 6 日
文献编号: 归档时间: 年 月 日

数据导出到Excel表格
开发工具与关键技术:Visual Studio
作者:吴新洋
撰写时间:2019年05月6日
数据库数据的导出,在大多数系统都是常见的,所以导出功能还是很重要的。数据的导出一般导出在Excel表格中,因为导入Excel中数据可观性较好。
举例:
在这里插入图片描述
//导出数据到Excel表格
function ExportToExcel() {
//获取当前表格数据的筛选条件
根据学院,年级,班级,学号获取页面数据
var AcademeID = $("#searchAcademeID").val();
var GradeID = $("#searchGradeID").val();
var ClassID = $("#searchClassID").val();
var StudentDetail = $("#searchStudentNumber").val();

    //判断学院,年级,班级,学号为空,undefined那就让学院,班级,年级,为0,学号为空
    if (AcademeID == "" || AcademeID == undefined) {
         AcademeID = 0;
       }
     if (GradeID == "" || GradeID == undefined) {
         GradeID = 0;
      }
     if (ClassID == "" || ClassID == undefined) {
         ClassID = 0;
        }
     if (StudentDetail == undefined) {
         StudentDetail = "";
        }

layer.confirm(“是否要导出当前表格中的数据,是请点击确定按钮,否则请筛选需要导出的数据!”, { icon: 3, title: “提示” }, function (layerIndex) {
layer.close(layerIndex);
window.open(“ExportToExcel?AcademeID=” + AcademeID + “&GradeID=” + GradeID + “&ClassID=” + ClassID + “&StudentDetail=” + StudentDetail);
});
}
在这里插入图片描述
/// 导出数据到Excel表格
public ActionResult ExportToExcel(int AcademeID, int GradeID, int ClassID, string StudentDetail)
{
数据查询&条件筛选
List listStudent = (from tbStudent in myModel.PW_Student
join tbAcademe in myModel.SYS_Academe on tbStudent.AcademeID equals tbAcademe.AcademeID
join tbSpecialty in myModel.SYS_Specialty on tbStudent.SpecialtyID equals tbSpecialty.SpecialtyID
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
orderby tbStudent.studentID descending
select new studentVo
{
studentID = tbStudent.studentID,
UserID = tbUser.UserID,
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 = tbAcademe.AcademeID,
GradeID = tbGrade.GradeID,
ClassID = tbClass.ClassID
}).ToList();
使用ToList将数据转化为表格的形式

        //条件筛选 Lambda表达式 运算符=>,左边是参数(如果有),右边是表达式或者语句
        //x=>x*x
        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();
}
if (!string.IsNullOrEmpty(StudentDetail))
{
listStudent = listStudent.Where(m => m.StudentName.Contains(StudentDetail) || m.StudentNumber.Contains(StudentDetail)).ToList();
}
//创建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表格添加数据
        for (int 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);
        }

        //为Excel文件命名

string fileName = “考生信息” + DateTime.Now.ToString(“yyyy-MM-dd-HH-mm-ss-ffff”)【年月日时分秒毫秒】 + “.xls”【格式】;确保Excel的格式正确
//转化为内存流
MemoryStream ExcelStream = new MemoryStream();
//将Excel文件写入内存流
excelBook.Write(ExcelStream);
//输出之前调用Seek(偏移量,游标位置) 移动文件读取指针到指定的位置
//Seek(0,Seek.begin) 第一个参数表示相对位置,第二个参数表示参照位置
ExcelStream.Seek(0, SeekOrigin.Begin);

   //MIME文件类型(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型
        return File(ExcelStream, "application/vnd.ms-excel", fileName);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值