zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Redis 设计与实现(第三章) -- 链表adlist
    Redis 设计与实现(第二章) -- SDS
    MySQL索引背后的数据结构及算法原理(转)
    MySQL索引原理及慢查询优化(转)
    MySQL常见的一些面试题(未完待续)
    js 获取前天、昨天、今天、明天、后天的时间
    linux 下nohup 使用
    java split 分割字符串用法
    Python 获取URL访问的HEAD头信息
    MySQL日期数据类型、时间类型使用总结
  • 原文地址:https://www.cnblogs.com/zhaogaojian/p/NPOI.html
Copyright © 2011-2022 走看看