数据导出到Excel表格
开发工具与关键技术:Visual Studio 2015
作者:Mr_恺
撰写时间:2019.04.30
在很多时候,我们要把查询出来的数据要保存在一个表格中,我们有一个在Mvc中的一个方法,把数据直接导出在Excel表格功能,而不是手动的把一条条数据往表格了增上去,让我们来一起学习一下:
先用linq查询,把数据库中的数据查询出来,下面查询出来的数据就是我们要导出来到Excel的数据:
在js部分写一个导出员工按钮的方法,方法只要是:询问是否要导出当前表格中的数据,和请求控制器:
然后在控制器写一个页面请求对应URL的方法:
1、 先查询数据,先用linq查询,把数据库中的数据查询出来,也可以说:上面怎么用linq查询把数据查出来的,现在就照搬下来查询就行了
2、 创建Excel工作薄,就是创建一个新的Excel表格
HSSFWorkbook excelBook = new HSSFWorkbook();
3、 创建工作薄,就是创建一个新的Excel表格页,并命名为:“员工信息”
NPOI.SS.UserModel.ISheet sheet1 = excelBook.CreateSheet(“员工信息”);
4、 在Excel表格里第一行创建表头行,因为这里用的是索引
NPOI.SS.UserModel.IRow row1 = sheet1.CreateRow(0);
5、 为表头行附加数据,等于是创建表头的意思,也可以说是创建标题:
6、 用一个for循环,继续创建行添加查询数据,因为表格里第一行已经作为表头,所以我们创建行索引要从1开始:
7、 然后为Excel文件命名,转化为内存流,将Excel文件写入内存流,输出前调用Seek移动文件读取指针的位置,最后还回MIME文件类型:
回到页面找到导出员工按钮,给点击事件调用js写的那个方法:
到了这一步全都搞完了,现在可以来测试一下效果:
当我们点击一下导出按钮,先出现一个询问框,询问:是否要导出当前表格中的数据,是请点击确定按钮,否则请筛选需要导出的数据!,点击确定,然后就像下载一样在左下角有个Excel文件显示出来,点击打开
就是这样把数据成功的导出Excel表格
上面控制器方法是我一步步分开来讲解的,
现在我把控制器方法连在一起给你们看: