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

  • 相关阅读:
    Linux学习(2)
    Linux学习(1)
    Sklearn_决策树(1)
    graphviz 包的安装问题
    函数的一些使用方法
    在装Scrapy库时出现了错误 ,如下图:
    跨域问题及解决
    pip永久换源及基本设置(新手必看)
    drf☞jwt自动签发与手动签发
    drf频率源码、自动生成接口文档、JWT
  • 原文地址:https://www.cnblogs.com/zhaogaojian/p/NPOI.html
Copyright © 2011-2022 走看看