导出考生的成绩信息,并且创建Excel输出到浏览器

该文章详细阐述了如何通过Linq查询联表获取考生的最高成绩信息,包括学院、年级和班级筛选。接着,利用NPOI库创建Excel工作簿,设置标题行、表头和数据行的样式,如居中、边框和颜色填充。此外,还介绍了自动调整列宽的方法,并最终将Excel输出到浏览器。文章适合需要进行数据导出和Excel处理的开发者参考。
摘要由CSDN通过智能技术生成

这篇文章主要讲述导出考生的成绩信息,包括相关数据信息。

目录

1.联表查询,条件筛选,执行linq查询

2.构建Excel,创建工作表,标题行(单元格、合并指定单元格、设置标题行样式)

3.表头行(创建表头样式an,以及相关CSS 样式、单元格循环)

4.数据行(遍历数据,创建单元格样式,遍历数据、添加样式)

5.设置列宽为自动适应(长度、宽度)

6.把创建好的Excel输出到浏览器(把Excel转化为流输出)

联表查询,条件筛选,执行linq查询

第一步操作,联表查询两个表的数据,这里我就不给联表查询数据的代码了。既然做到这里相信友友们肯定都可以自主完成的,所以下面简单分析一下。

查询出考生的成绩信息,可以使用Linq以group by 分组按用户ID查询出用户的最高的成绩信息 ,既然是联表查询考生的成绩信息,不言而喻肯定是一个表查询考生相关的所有信息(学生ID、学号、姓名、性别、班级、考试次数、最优成绩、合格类型、学院ID、年级ID、班级ID)  ;一个表查询与成绩相关的所有信息(最优成绩、总考试次数、合格类型、根据学生成绩进行倒序排获取第一条数据的成绩ID,还有需要用到一个属性kep:返回进行分组的关键字段的值)。

然后条件筛选,if判断学院ID、年级ID、班级ID不为空并且大于0,最后执行linq查询。

 构建Excel,创建工作表,以及标题行

 在导入试题的时候, 我们需要构建Excel来为导出数据作铺垫,接下来,创建工作薄。工作表。

工作表里面当然也需要设置标题行,因此,我们需要创建标题行,这会用到一个属性,CreateRow(行的索引值),然后创建单元格设置单元格内容以及标题行跨列显示(合并指定单元格),最后设置标题行样式。

 //3、标题行
             
            IRow rowTitle = sheet.CreateRow(0);
             
            ICell cell0 = rowTitle.CreateCell(0);
            
            cell0.SetCellValue("考生成绩表");
            
            sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(0, 0, 0, 6));
          
            ICellStyle cellStyle_Title = workbook.CreateCellStyle();
            cellStyle_Title.Alignment = HorizontalAlignment.CENTER;
            cellStyle_Title.VerticalAlignment = VerticalAlignment.CENTER;
            IFont font_Title = workbook.CreateFont();
            font_Title.Color = NPOI.HSSF.Util.HSSFColor.SKY_BLUE.index;
            font_Title.Boldweight = (short)FontBoldWeight.BOLD;//加粗
            cellStyle_Title.SetFont(font_Title);

            cellStyle_Title.BorderLeft = CellBorderType.THIN;
            cellStyle_Title.BorderTop = CellBorderType.THIN;
            cellStyle_Title.BorderRight = CellBorderType.THIN;
            cellStyle_Title.BorderBottom = CellBorderType.THIN;
            cell0.CellStyle = cellStyle_Title;

表头行(创建表头样式an,以及相关CSS 样式、单元格循环)

创建表头行并分别设置字段,字段里面包括序号,学号、姓名、性别、班级、成绩还有合格类型;

然后设置表头行样式,声明样式,水平居中、垂直居中、设置背景填充效果、还有设置背景填充颜色;

接下来,设置边框线为实线;

设置字体部分,分明包括声明字体,给字体加粗并且设置字体大小,这个字体大小不能大于单元格的宽高、加入单元格,然后给rowHerder单元格设置样式  并且

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值