导出数据到Excel表格

时间:2024-03-19 09:16:48

开发工具与关键技术:VS MVC
作者:冉冉
撰写时间:2019年05月07日

导出数据就是把所选择的所有信息导出到Excel表格,并且把这个表格下载下来。有时候不需要把全部信息都导出的话,可以先做一个查询,把需要的数据查询出来然后再导出。点击导出按钮时会弹出一个提示框,提示用户是否确定要导出当前所选择的数据。点击确定的话就会以Excel表格的格式下载到所在电脑上。
如下图,点击导出考生按钮就会弹出提示框,是请点击确定,然后就会下载所在页面的表格的数据到Excel表格里,否则就筛选需要导出的数据。
导出数据到Excel表格导出数据到Excel表格
接下来,要怎么样保证页面中的数据与到出来的Excel表格的数据一致?所以在做导出之前要做一次查询,根据在页面的筛选条件又在控制器查询了一次,只是查询的代码写在导出的方法里面。所以在导出数据之前,需要写一个多条件查询。多条件查询会有多个下拉框来查询数据,例如我这个总结中的那个项目有三个下拉框。所以首先要获取到这三个下拉框的值。
导出数据到Excel表格
获取到这三个下拉框的值之后,要判断这三个值是否为空或undefined,然后把这三个值作为参数传到控制器。
看一下页面的代码:(其中包括这上面提示框的代码)
导出数据到Excel表格
在页面上写完之后来到控制器,写一下控制器的代码:导出数据到Excel表格
首先接收要页面传过来的值,然后查询数据(多条件查询),把页面所需要的数据查询出来之后再进行条件筛选,根据传进来的参数来筛选所需要的数据,然后判断。判断用的是lambda表达式。看代码:
导出数据到Excel表格
条件筛选用的是lambda表达式来写,判断传进来的这个参数是否大于零,大于零就执行lambda表达式的内容。Lambda表达式:m是参数(自己命名的);=>是运算符;运算符左边的是参数(如果有就写,没有就不写);右边是表达式或者语句。
获取到数据之后就把它导出到Excel表格,要把它导出到Excel表格首先要有一个表。所以我们首先来创建Excel工作簿,然后在工作簿里面再创建一个工作表。
导出数据到Excel表格
把工作表创建好了之后就来创建表头行(与页面中的表格的表头行一致),然后设置表头。设置表头首先要创建员工单元格,因为是从左往右一个一个的创建,所以第一个单元格的索引为零,然后再设置单元格的值。其中,所创建的单元格要与页面中的表格的单元格一致(位置、顺序、内容)。
如下图:
导出数据到Excel表格
导出数据到Excel表格
创建好表头之后就为Excel表格添加数据(数据在上面已经获取到了),因为数据不是只有一条,而是多条数据;所以在这里要写一个for循环来遍历循环所有数据。通过这个for循环来把这些数据都放到前面创建的工作簿里面。然后就要创建行了。这里的写法与设置表头差不多。最后添加数据,有多少个单元格就添加多少条数据,代码有点多所以就列举几句代码,而不一一列举了。其实没有被截图的代码与这些代码是一样的,只是最后的那个列名称不同而已。
看代码:
导出数据到Excel表格
因为要输出并且给Excel表格取个名字,所以接下来就是为这个Excel文件命名。为了每次下载文件都不是同一个名字,所以在文件后面加上下载时的时间。命名完之后就让这个Excel文件已内存流的形式输出到页面。所以要把这个Excel文件写入内存流里面,在输出之前调用seek移动文件读取指针到指定位置(也就是内存流最开始的位置),然后返回文件(并把文件名称一同返回)。
看代码:
导出数据到Excel表格
这样这个导出数据就完成了,导出数据相对与导入数据来说要简单的多,而且在页面的代码也要少很多,导出数据在页面只要写一个询问的代码就好了。
备注:以上代码来源于授课老师的上课项目。