查询后的数据经过NPOI导出EXCEL

http://www.myexception.cn/asp-dotnet/2035212.html

查询后的数据通过NPOI导出excel,已经实现了NPOI导出excel的功能,但是导出的是后台全部数据,查询后的结果怎样导出?小弟不才,知道思路,应该把查询的数据从数据库中提取出来,然后在NPOI中建立数据格式,但是没实现效果,代码较多,无关紧要的、重复性的代码我就省略了请大神耐心看下,帮小弟指点一下,感激不尽!!!
首先是datagrid获取数据(含查询)的代码:

public ActionResult GetAllData()
        {

            int pageIndex = Request["page"] == null ? 1 : int.Parse(Request["page"]);
            int pageSize = Request["rows"] == null ? 10 : int.Parse(Request["rows"]);
            int total = 0;
            var anQuanYinHuanQuery = new AnQuanYinHuanQuery()
            {
                PageSize = pageSize,
                PageIndex = pageIndex,
                Total = 0,
                jianchariqi = Request["jianchariqi"],
                miaoshu = Request["miaoshu"],
                leibie = Request["leibie"],
                cuoshi = Request["cuoshi"],
                danwei = Request["danwei"],
                gongzhang = Request["gongzhang"],
                banzhang = Request["banzhang"],
                yaoqiuriqi = Request["yaoqiuriqi"],
                jiancharen = Request["jiancharen"],
                zhenggairiqi = Request["zhenggairiqi"],
                fucharen = Request["fucharen"],
                guanbi = Request["guanbi"],
            };
            var temp = from u in SearchData(anQuanYinHuanQuery) select u;
            total = temp.Count();
            var lists = temp.OrderByDescending(s => s.id)
                 .Skip<AnQuanYinHuan>((pageIndex - 1) * pageSize).Take<AnQuanYinHuan>(pageSize);
            var data = new
            {
                total = total,
                rows = lists.ToList<AnQuanYinHuan>()
            };

            return Json(data, JsonRequestBehavior.AllowGet);
        }
 public IQueryable<AnQuanYinHuan> SearchData(AnQuanYinHuanQuery query)
        {
            var searchData = this.db.AnQuanYinHuan.Where(u => true);
            if (!string.IsNullOrEmpty(query.jianchariqi))
            {
                searchData = searchData.Where<AnQuanYinHuan>(u => u.jianchariqi.Contains(query.jianchariqi));
            }
......略
}

然后是NPOI导出的代码

public FileResult Export()
        {           
            MemoryStream ms = new MemoryStream();
            IWorkbook workbook = new HSSFWorkbook();
            ISheet st = workbook.CreateSheet("XXX表格");
            IRow row = st.CreateRow(0);
            row.CreateCell(0, CellType.String).SetCellValue("序号");
            row.CreateCell(1, CellType.String).SetCellValue("检查日期");
           ......略
            int i = 1;           
            //foreach (var item in db.AnQuanYinHuan)
            foreach (var item in temp)
            {
                IRow row1 = st.CreateRow(i);
                row1.CreateCell(0, CellType.String).SetCellValue(item.id);
                row1.CreateCell(1, CellType.String).SetCellValue(item.jianchariqi);
               ......略
                i++;
            }
            workbook.Write(ms);
            ms.Flush();
            ms.Position = 0;
            return File(ms, "application/vnd.ms-excel", "安全隐患表" + System.DateTime.Now + ".xls");
        }

 

http://www.myexception.cn/asp-dotnet/2035212.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值