【ITOO】

编程入门 行业动态 更新时间:2024-10-10 09:19:04

【<a href=https://www.elefans.com/category/jswz/34/1693149.html style=ITOO】"/>

【ITOO】

以前4.1做新生系统的时候为了保持基础的信息和新生的信息保持一致,曾经想做一个多个表拼接导出到excel中,然后再导入到基础表中!可是后来这件事情就不了了之了!现在在考评系统,这个类似的多表拼接导出excel的任务又分配到我的头上,看来该是我学习的知识,躲也躲不掉的!
    现在就让我一一来描述吧!

    现在业务是这样的:我们需要做一个导出,需要把所有教师被学生评教之后的成绩都导出来,他们的表的关系如下图:




   其中关于对基础表的操作,需要调用基础的接口,在这里我只写出考评的逻辑,仅供参考: B层的:
#region 李少然 2016-3-9 22:22:16 QueryAllTeacherScoreExport()导出详细的成绩/// <summary>/// 查询所有的教师课程ID,课程名称,课程类型,老师名称,学院名称,上课总人数/// </summary>/// <returns></returns>public List<ExportScore> QueryAllTeacherScoreExport(){EvaluationCheckScoreBll bll = new EvaluationCheckScoreBll();List<ExportScore> listExport = new List<ExportScore>();List<BasicOnClassViewModel> listOnClass = new List<BasicOnClassViewModel>();try{listOnClass = BasicOnClassWCF.QueryAllTeacherCourse();//调用基础的接口查询课程类型等信息foreach (var itemOnClass in listOnClass){string onclassid = itemOnClass.OnClassID.ToString();//查询该教师的总分数List<EvaluationAssessScoreEntity> Allscore = this.MyBaseCurrentDal.LoadItems(p => p.EvaluationTeacherCourseEntityTeacherCourseId == onclassid).ToList();//根据课程ID查询checkscore表List<EvaluationCheckScoreEntity> listscore = bll.QueryCheckScore(itemOnClass.OnClassID.ToString());String[] arrayScore =new string[15];arrayScore = listscore[0].CheckScore.Split(new char[] { '/' });                 //用构造器实例化一个评估情况数据契约实体,并给属性赋值ExportScore enExport = new ExportScore{TeacherName = itemOnClass.TeacherName,DepartmentName = itemOnClassanizationName,CourseNature = itemOnClass.CourseTypeName,CourseName = itemOnClass.CourseName,//总分TeacherScore = Allscore[0].Score,AllPeople = itemOnClass.studentSum,//根据外键到评估记录实体查询已评人数信息AccoutPeople = listscore.Count(),                      //根据外键查询每个课程中题目的得分数和题目Stem1 = arrayScore.Count() >= 1 ? arrayScore[0].ToString().Trim() : "0",Stem2 = arrayScore.Count() >= 2 ? arrayScore[1].ToString(): "0",Stem3 = arrayScore.Count() >= 3 ? arrayScore[2].ToString(): "0",Stem4 = arrayScore.Count() >= 4 ? arrayScore[3].ToString(): "0",Stem5 = arrayScore.Count() >= 5 ? arrayScore[4].ToString(): "0",Stem6 = arrayScore.Count() >= 6 ? arrayScore[5].ToString(): "0",Stem7 = arrayScore.Count() >= 7 ? arrayScore[6].ToString(): "0",Stem8 = arrayScore.Count() >= 8 ? arrayScore[7].ToString(): "0",Stem9 = arrayScore.Count() >= 9 ? arrayScore[8].ToString(): "0",Stem10 = arrayScore.Count() >= 10 ? arrayScore[9].ToString(): "0",Stem11 = arrayScore.Count() >= 11 ? arrayScore[10].ToString(): "0",Stem12 = arrayScore.Count() >= 12 ? arrayScore[11].ToString(): "0",Stem13 = arrayScore.Count() >= 13 ? arrayScore[12].ToString(): "0",Stem14 = arrayScore.Count() >= 14 ? arrayScore[13].ToString(): "0",Stem15 = arrayScore.Count() >= 15 ? arrayScore[14].ToString() : "0"};//将评估情况数据契约实体添加到评估情况数据契约集合中listExport.Add(enExport);}}catch (Exception){throw new NotImplementedException();}return listExport;}#endregion


然后在前台的MVC层的controller中调用B层的逻辑:
 #region 导出所有的学生成绩信息 2016-3-9 23:06:36 李少然public ActionResult DetailScoreExport(){//调用B层的方法List<ExportScore> listExport = new List<ExportScore>();listExport = QueryResultWCF.QueryAllTeacherScoreExport();Hashtable headNames = new Hashtable();headNames.Add("TeacherName", "教师姓名");headNames.Add("DepartmentName", "学院名称");headNames.Add("CourseNature", "课程类型");headNames.Add("CourseName", "课程名称");headNames.Add("TeacherScore", "总成绩");headNames.Add("AllPeople", "应评人数");headNames.Add("AccoutPeople", "实评人数");headNames.Add("Stem1", "题目1");headNames.Add("Stem2", "题目2");headNames.Add("Stem3", "题目3");headNames.Add("Stem4", "题目4");headNames.Add("Stem5", "题目5");headNames.Add("Stem6", "题目6");headNames.Add("Stem7", "题目7");headNames.Add("Stem8", "题目8");headNames.Add("Stem9", "题目9");headNames.Add("Stem10", "题目10");headNames.Add("Stem11", "题目11");headNames.Add("Stem12", "题目12");headNames.Add("Stem13", "题目13");headNames.Add("Stem14", "题目14");headNames.Add("Stem15", "题目15");//调用以下方法就可以,泛型T,集合,汉字表头集合,是可以变的,"application/vnd.ms-excel"不用变 ,文件名也可以变。return File(ExportManager.ExportExcel(listExport, headNames),"application/vnd.ms-excel", "所有教师评估成绩表.xls");}#endregion


    这样,导出成绩就成功了!其实很多事情,尤其是和代码相关联的,只要需求理明白了,代码都不成问题!另一个就是要看你的代码的质量了!

更多推荐

【ITOO】

本文发布于:2024-02-13 18:53:29,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1760269.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:ITOO

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!