• NFine框架JqGrid导出选中行为Excel实现方法


    客户端

    function PostAndGetFileByUrl(url,type,postdata) {
            var temp;
            $.ajax({
                url: url,
                type: type,
                data: {keyword:postdata},
                async: true,
                dataType: "Text",
                success: function (data) {
                    downloadFile(data);
                }
            });
            return temp;
        }
        function btn_export()
        {
            var $gridList = $("#gridList");
            var rowData = $gridList.jqGrid('getGridParam','selarrrow');
            PostAndGetFileByUrl("/RunManage/EnvData/WriteToExcel", "POST", rowData.join(","));
        }
         function downloadFile(url) {
           try {
          var elemIF = document.createElement("iframe");
          elemIF.src = url;
          elemIF.style.display = "none";
          document.body.appendChild(elemIF);
        } catch (e) {
    
        }
      }
    
    <a id="NF-export" class="btn btn-primary" onclick="btn_export()"><i class="fa fa-plus"></i>导出XLS</a>
    

      

      使用到了npoi库,请自行引用

    [HttpPost]
            [HandlerAjaxOnly]
            public ActionResult WriteToExcel(string keyword)
            {
                DataTable dt = new DataTable();
                dt.Columns.Add("AAAA");
                dt.Columns.Add("BBBB");
                List<ItemEntity> dataList = EnvDataApp.GetListByKeywordArray(keyword);//请写自己的获取List方法
                foreach (var item in dataList)
                {
                    DataRow dr = dt.NewRow();
                    dr["AAAA"] = item.F_ID;
                    dr["BBBB"] = item.F_FullName;
                    dt.Rows.Add(dr);
                }
                NPOIExcel npoiexel = new NPOIExcel();
    
                string fileDir = DateTime.Now.ToString("yyyyMMdd");
                string fileName = "G" + Guid.NewGuid().ToString("N") + ".xls";
                string destDir = Server.MapPath(@"/XlsTemp") + "\" + fileDir + "\";
                if (!Directory.Exists(destDir))
                {
                    Directory.CreateDirectory(destDir);
                }
                npoiexel.ToExcel(dt, "数据", "Sheet1", destDir + fileName);
                return Content("/XlsTemp/" + fileDir + "/" + fileName);
            }
        }
    

      注:这是一种写文件到磁盘方法,可以改造下,支持大文件,定时查询生成状态,可以重复下载。如果简单的excel可以直接Response.Write

  • 相关阅读:
    从一个表格文件中录入信息,进行计算后,在文件中输出这个表格
    求一个字符串的最小正周期
    算法竞赛入门例题3-5生成元
    算法竞赛入门经典 例题3-4 猜数字游戏的提示
    回文词
    WERTYU找不出不能输出空格的原因SSSSSSSSSSSSS
    DAY 106 ES介绍
    DAY 105 redis集群搭建
    DAY 104 redis高级02
    DAY 103 redis高级01
  • 原文地址:https://www.cnblogs.com/zhaogaojian/p/NPOI.html
Copyright © 2020-2023  润新知