欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ASP.netMVC 导出数据

程序员文章站 2024-02-27 20:05:09
...

以重庆邮电项目为例,实现导出当前页面所显示的表格数据,必须要获取当前页面所有数据,如何查询到数据就如何获取当前页面显示的数据。
Js部分,首先获取当前表格数据的筛选条件,比如:
ASP.netMVC 导出数据
我们会发现获取的字段正是查询时的下拉框和学号/姓名模糊查询的内容,如果AcademeID == “” || AcademeID == undefined,则说明学院下拉框显示值为“—请选择----”,那么年级和班级也没有选择下拉框数据,若StudentDetail ==
undefined,说明学号/姓名的模糊查询框为空。这种情况导出的数据就是显示在页面的第一页数据,其他情况以此类推如图所示:
ASP.netMVC 导出数据

导出数据之前需要提醒用户是否确定导出当前数据,如果确定导出,则在新标签页打开下载excel的url,下载excel文件。
控制器:导出数据到Excel表格
传入查询需要的参数,学院id,年级id,班级id和学生详细信息(学号/姓名)。因为要导出数据,需要获取当前页面的每一条数据,所有需要根据学院id,年级id,班级id和学生详细信息(学号/姓名)信息查询显示在当前页面的数据。同时还要判断,用户是否选择了下拉框和是否查询了学生详细信息,若有则将数据查询出来,在页面加载显示。

数据处理:

1.首先创建Excel工作簿,必须 是引用了NPOI前提下,new一个HSSFWorkbook。

2.在工作簿中创建工作表,并为工作表命名
3.创建表头:NPOI.SS.UserModel.IRow
row1 = sheet1.CreateRow(0);
4.设置表头:
5.写入表格数据:一个for循环,将查询的每条数据,“写”入表格内。
ASP.netMVC 导出数据
7.设置文件名:格式一般为:表格信息拼接表格生成时间(年-月-日-时-分-秒-毫秒)再拼接上表格格式的后缀".xls"。
string fileName = “考生信息” + DateTime.Now.ToString(“yyyy-MM-dd-HH-mm-ss-ffff”)+ “.xls”;
8.将Excel表格转化为流,输出,new出一个文件流。
MemoryStream bookStream = new MemoryStream();
9.将文件写入流: excelBook.Write(bookStream);
10.输出之前调用Seek(偏移量,游标位置)移动文件读取指针到指定的位置,Seek(0,Seek.begin)第一个参数表示相对位置,第二个参数表示参照位置。:bookStream.Seek(0,SeekOrigin.Begin);
11.返回文件(application/vnd.ms-excelMIME类型):
return File(bookStream,“application/vnd.ms-excel”,fileName);
写完整以上步骤便可导出数据成功。

                                                          ----备:以上代码来自项目。