Asp.Net MVC+Layui 导出Execl
.net 导出Execl 方法:
#region 导出Execl 根据table内容全部到导出 public static void ExcelImport(DataTable dt, string ExportFileName) { StringWriter sw = GetStringWriter(dt); //当前编码 HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); //把输出的文件名进行编码 string fileName = HttpUtility.UrlEncode(ExportFileName, System.Text.Encoding.UTF8); //文件名 string str = "attachment;filename=" + fileName + ".xls"; //把文件头输出,此文件头激活文件下载框 HttpContext.Current.Response.AppendHeader("Content-Disposition", str);//http报头文件 HttpContext.Current.Response.ContentType = "application/ms-excel"; //this.Page.EnableViewState = false; HttpContext.Current.Response.Write(sw); HttpContext.Current.Response.End(); } public static StringWriter GetStringWriter(DataTable dt) { StringWriter sw = new StringWriter(); // sw.Write(dc.ColumnName + "\t"); //读列值 //重新的一行 // sw.Write(sw.NewLine); //读列名 foreach (DataColumn dc in dt.Columns) sw.Write(dc.ColumnName + "\t"); //读列值 //重新的一行 sw.Write(sw.NewLine); if (dt != null) { foreach (DataRow dr in dt.Rows) { for (int i = 0; i < dt.Columns.Count; i++) { sw.Write(dr[i].ToString() + "\t"); } sw.Write(sw.NewLine); } } sw.Close(); return sw; } #endregion
调用方式:只要调用此方法浏览器就直接下载文件
CommMethod.ExcelImport(dataTable, "文件名称"+DateTime.Now.ToString("yyyyMMddHHmm"));
结合layui方式下载,前端如将 按钮放在表头:先定义按钮根据table中的 toolbar: '#toolbar_datatab' 进行设置:
<script type="text/html" id="toolbar_datatab"> <div class="layui-btn-container"> <button class="layui-btn layui-btn-sm lay_bnt_border " id="btnImport">Execl导入</button> </div> </script>
触发按钮方法,需要使用到Layui的upload,并且在layui.use 时需要声明这个upload

//======================导入Execl 方法 Begion ================================================== upload.render({ elem: '#btnImport', url: '/Ajax/AjaxIOSDataInfo.ashx?type=ExeclImportData', data: { type: "Import" }, exts: 'xls', before: function (data) { loadIndex = layer.load(2); }, done: function (res) { layer.close(loadIndex); if (res.code < 0) { table.reload('iosdatatab'); return layer.alert('导入失败<br/>' + res.msg, { icon: 2 }); } $("#btnSearch").click(); table.reload('findtab'); layer.alert('导入成功<br/>' + res.msg, { icon: 1, yes: function () { location.reload(); } }, ); return }, error: function (err) { debugger layer.alert('导入出现异常', { icon: 2 }); } }); //====================导入Execl 方法 End =====================================================
 
                    
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号