MVC导出数据

MVC导出数据

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

开发工具与关键技术:Visual Studio 2015  C#

作者: 李杨

撰写时间:2019-06-05

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

导出Excel是经常用的,这里我们来介绍如何把table里面的数据导出到Excel里面

首先呢,我们经常将datatable或者list类型的数据分页展示在前端,然后我们经常也需要将这些数据导出到Excel里面,接着下来我们就来讲讲如何将这些数据导出到Excel里面。

目前的话常用的数据库导出到Excel的方法,是借助第三方的类库。比如POI和NPOI。

然后我们就要去控制器写方法,先写查询,之后条件筛选

如图:

然后接下来就是再去写导出Excel的具体方法

先创建一个Excel对象,

然后给Excel创建一个对象工作簿,

之后就是给sheet添加第一行的头部标题

如下大概是这个样子:

NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook();

NPOI.SS.UserModel.ISheet sheet = book.CreateSheet();

NPOI.SS.UserModel.IRow row1 = sheet.CreateRow(0);

            row1.CreateCell(0).SetCellValue("状态时间");

            row1.CreateCell(1).SetCellValue("聚类包名称");

            row1.CreateCell(2).SetCellValue("聚类类型名称");

            row1.CreateCell(3).SetCellValue("客户数");

            row1.CreateCell(4).SetCellValue("用户数");

            row1.CreateCell(5).SetCellValue("本月收入");

            row1.CreateCell(6).SetCellValue("上月收入");

            row1.CreateCell(7).SetCellValue("流动客户");

            row1.CreateCell(8).SetCellValue("未归属客户群");

            row1.CreateCell(9).SetCellValue("营销经理");

 

然后这样创建好Excel的对象以后,我们就要去给每一行添加数据。

如下例子:

for (int i = 0; i < lisClusterIncome.Count(); i++){

NPOI.SS.UserModel.IRow row = sheet.CreateRow(i + 1);//给sheet添加一行           row.CreateCell(0).SetCellValue((DateTime)lisClusterIncome[i].ChangeTime);//状态时间

row.CreateCell(1).SetCellValue(lisClusterIncome[i].ClusterName);//聚类包名称

row.CreateCell(2).SetCellValue(lisClusterIncome[i].ClusterTypeName)聚类类型名称           row.CreateCell(3).SetCellValue((double)lisClusterIncome[i].CustomerNumber);//客户数          row.CreateCell(4).SetCellValue((double)lisClusterIncome[i].ThisMonthIncome);//用户数             row.CreateCell(5).SetCellValue((double)lisClusterIncome[i].ThisMonthIncome);//本月收入

row.CreateCell(6).SetCellValue((double)lisClusterIncome[i].LastMonthIncome);//上月收入              row.CreateCell(7).SetCellValue((double)lisClusterIncome[i].FlowCustomer);//流动客户            row.CreateCell(8).SetCellValue((double)lisClusterIncome[i].UnvestedClient);//未归属客群

row.CreateCell(9).SetCellValue(lisClusterIncome[i].ManagerName);//营销经理

            }

 

然后接下来呢就要去写输出的文件名称

把Excel转化为数据流,然后输出

再去定义文件流

接着讲工作簿写入文件流中

之后就是调用Seek方法获取文件流的长度

最后就是返回文件类型,文件名称

如下图:

 

 

这样在控制器写好方法以后,我们就要去视图再去写导出方法

首先要调用页面的导出方法 ,然后去声明自定义的变量,

再去判断数据,弹出模态框。

如图:

然后点击导出按钮大的样子就是这个样子,再点击确定就可以导出了:

如图:

然后今天呢就讲到这里了。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值