js 下载excel

 

 

前台  js

  <script>

        //导出
       function Export() {

           //传递参数
           var data="paramer";

           var config = $.extend(true, { method: 'post' }, "/SuppUpd/SetDPGSL");
           var $iframe = $('<iframe id="down-file-iframe" />');
           var $form = $('<form target="down-file-iframe" method="' + config.method + '" />');
           $form.attr('action', "/SuppUpd/SetDPGSL");
           $form.append('<input type="hidden"  name="datalist" SN=\'' + data + '\' />');
           $iframe.append($form);
           $(document.body).append($iframe);
           $form[0].submit();
           $iframe.remove();


       }
    </script>

  

后台 Controller

        /// <summary>
        /// 下载供应商送货单,并将供应商代码写入模板
        /// </summary>
        /// <param name="SN"></param>
        /// <returns></returns>
        public JsonResult SetDPGSL(string SN)
        {

            try
            {
                //npoi 导出excel
                string mubUrl = @"\App_Data\SuppUpd.xls";
                new ExcelHelper().ExportGetSuppUpdModel(LoginUser.UserID, mubUrl, HttpContext, "送货信息模板" + ".xls");

                var result = new
                {
                    result = 1,
                    Msg = "下载成功"
                };

                var msg = "供应商送货单模板下载:" + "下载成功:" + LoginUser.UserID;
                SetAddLog(ServicePageSMSE.SuppUpd, OperateType.imp, msg);

                return Json(result);
            }
            catch (Exception)
            {

                var result = new
                {
                    result = 0,
                    Msg = "下载失败"
                };

                return Json(result);
            }

        }

  

具体执行方法

        /// <summary>
        /// 下载供应商送货单,并将供应商代码写入模板固定位置
        /// </summary>
        /// <param name="DPG1S1">供应商代码</param> 
        /// <param name="mubUrl">模板地址</param>
        /// <param name="context"></param>
        /// <param name="fileName">保存文件名称</param> 
        public void ExportGetSuppUpdModel(string DPG1S1, string mubUrl, HttpContextBase context, string fileName)
        {
 
            string road = context.Server.MapPath(mubUrl);
            FileInfo s = new FileInfo(road);
            using (FileStream stream = new FileStream(road, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
            {
                #region  Excel样式

                HSSFWorkbook workbook = new HSSFWorkbook(stream);

                HSSFSheet sheet = (HSSFSheet)workbook.GetSheetAt(0);
                workbook.SetSheetName(0, "模板");


                ICellStyle style = workbook.CreateCellStyle();
                NPOI.SS.UserModel.IFont font = workbook.CreateFont();
                font.IsBold = true;
                font.FontName = "宋体";
                font.FontHeightInPoints = 13;
                style.WrapText = true;
                style.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
                style.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
                style.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
                style.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
                style.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;//居中
                style.VerticalAlignment = VerticalAlignment.Center;//垂直居中
                style.SetFont(font);//HEAD 样式


                #endregion


                IRow row;
                row = sheet.GetRow(0);
                row.GetCell(8).SetCellValue(DPG1S1);
              
 



                using (MemoryStream ms = new MemoryStream())
                {
                    workbook.Write(ms);
                    ms.Position = 0;
                    if (context.Request.Browser.Browser == "IE")
                        fileName = HttpUtility.UrlEncode(fileName);
                    context.Response.AddHeader("Content-Disposition", "attachment;fileName=" + fileName);
                    context.Response.BinaryWrite(ms.ToArray());


                }

            }

        }

  

 

posted @ 2017-05-18 16:34  人生为卒  阅读(338)  评论(0编辑  收藏  举报