导出表格数据
(开发工具与关键技术:VS .NETMVC 作者:纳兹,撰写日期:2019.05.27源于:老师上课教程)
导出表格数据:下图为导出表格数据的控制器代码,以导出学生表为例子。
使用Linq查询。在Linq里面使用group by(分组语法)分组按用户ID(UserID)查询出用户最高的成绩信息;(UserID = tbStudent.Key)key属性:返回进行分组的关键字段的值;数据导出需要先进行数据查询和数据筛选,查询出表格的数据,下面以学生表为例子查询出学生学号、性别、姓名等信息;查询出来表格的所以数据,要进行条件筛选,这里以学生表为例子,根据学院、年级、班级信息进行筛选。查询与筛选完表格数据,就要创建工作薄(HSSFWorkbook exBook = new HSSFWorkbook());创建完工作簿接着创建工作表(ISheet sheet = exBook.CreateSheet(“考生成绩”));创建工作表需要设计(创建)表头(IRow headRow = sheet.CreateRow(0));因为这里以学生表为例子,表头有六个字段,设计表头字段(headRow.CreateCell(m).SetCellValue("")),设计表头字段里面的m是一个变量,根据表格里面需要多少个字段变量从零开始自增,SetCellValue("")里面填写字段的名称。接着写入表格数据,用for循环来循坏一次,写入表格数据需要先创建行(IRow rowTemp =
sheet.CreateRow(i + 1)),行数等于i + 1,从零开始计算;写入数据(rowTemp.CreateCell(0).SetCellValue(listResult[i].StudentNumber)。接着将Excel文件转化为文件流输出(MemoryStream exStream = new
MemoryStream())、(exBook.Write(exStream));再在输出之前调用Seek(偏移量,游标位置)方法,确定文件流开始的位置(exStream.Seek(0,
SeekOrigin.Begin)),exStream是声明的文件流变量;再来为下载的Excel文件命名(string
exFileName = “学生安全教育测试成绩” +
DateTime.Now.ToString(“yyyyMMddHHmmss”) + “.xls”);最后返回文件的文件流位置。
以上为表格数据的导出。