把数据导出到Excel
开发工具与关键技术:SQL Server 2014 Management Studio 导出到Excel
作者:李国旭
撰写时间:2019年7月6日
如何把表格中的数据到出到Excel表格中去呢?那么前提是我们要先把数据查询出来,再对我们的Excel的表格需要以什么的样式可以自己写上去,和我们之前的导出到Excel的方法都是一样的。下面我们一起来看一下具体的操作。
第一, 先获取查询的条件和他们的条件的值,这里如果把ID的值写错的话可能会导致我们为您导出的数据出不来,所以我们在写他们的ID一定不要写错了,“ID是唯一的” ,我们的名字可以是多个的,但是呢名字一样的话有时候会分不清那个跟那个;所以为了区分他们我就把名字写成不一样的。
第二, 判断他们的ID等于空或者是等于underfined那么他们的ID就等于零,我们通常都是这样来判断他们的ID的。
最后,就是拼接他们的ID值和传参数。这里window.open打开的是新的窗口,紧接着就是他的路径后面跟的是它的参数和一些ID的值;这里也是一样ID不能传错,传错了的话也会导出不成功的,所以我们写代码的时候就要谨慎不能马虎。
控制器那边的就是说,比如我们要把某个表导出到Excel它呢跟我们写查询的时候是一样的。
接着它的步骤流程如下:1、创建工作簿;2、创建工作表;3、设计表头;4、创建表头;5、将Excel文件转化为文件流输出和将workbook写入内存流;6、确定流的开始位置;7、为导出的Excel命名。下面的就是代码,在做之前呢要先引用“IO”这个文件
//1、创建工作簿
HSSFWorkbook exBook = new HSSFWorkbook();
//2、创建工作表
ISheet sheet = exBook.CreateSheet("天津睿兴部门信息");
//3、设计表头
//3.1、创建表头
IRow headRow = sheet.CreateRow(0);
//3.2设计表头字段
headRow.CreateCell(0).SetCellValue("部门名称");
headRow.CreateCell(1).SetCellValue("部门联系电话");
headRow.CreateCell(2).SetCellValue("部门内部联系电话");
headRow.CreateCell(3).SetCellValue("部门领导");
headRow.CreateCell(4).SetCellValue("部门职责");
headRow.CreateCell(5).SetCellValue("部门编号");
headRow.CreateCell(6).SetCellValue("部门描述");
headRow.CreateCell(7).SetCellValue("所属组织");
然后For…in…循环;i++,创建行“IRow rowTemp = sheet.CreateRow(i + 1);”;在写入我们需要导出的表格数据
//5、内存流。将Excel文件转化为文件流输出
MemoryStream exStream = new MemoryStream();
//将workbook写入内存流
exBook.Write(exStream);
//6、输出之前调用Seek(偏移量,游标位置)方法:确定流开始的位置
exStream.Seek(0, SeekOrigin.Begin);
//7、为下载的Excel导出文件命名
string exFileName = "天津睿兴部门信息表" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
//返回
return File(exStream, "application/vnd.ms-excel", exFileName);
下图就是导出到Excel的表格数据,效果图如下: