MVC+jQuery 无刷新导出EXCEL的过程(伪excel格式)

来源:互联网 发布:澳门网络真人博客 编辑:程序博客网 时间:2024/06/08 10:17

MVC+jQuery 无刷新导出EXCEL的过程(伪excel格式):

伪excel格式:用excel能打开显示正常,但会打开会有提示。

1、在网页<javascript>中建立Jquery过程,实现无刷新下载

 jQuery.download = function (url, data, method) {        // 获得url和data        if (url && data) {            // data 是 string 或者 array/object            data = typeof data == 'string' ? data : jQuery.param(data);            // 把参数组装成 form的  input            var inputs = '';            jQuery.each(data.split('&'), function () {                var pair = this.split('=');                inputs += '<input type="hidden" name="' + pair[0] + '" value="' + pair[1] + '" />';            });            // request发送请求            jQuery('<form action="' + url + '" method="' + (method || 'post') + '">' + inputs + '</form>')            .appendTo('body').submit().remove();        };

2、在网页中<javascript>中建立无刷新调用上面过程

 $("#btnExcel").click(function () {            var userId = $(":input[name='UserId']").val();            var userName = $(":input[name='UserName']").val();            var gender = $("#Gender").val();            var departId = $("#DepartId").val();            var statusId = $("#statusId").val();            jQuery.download("/home/ExportExcel", { userId: userId, userName: userName, gender: gender, departId: departId, statusId: statusId }, "post");        });

3、在MVC 事件中采用以下方法建立EXCEL数据源(就是 一个表格)

 //导出excel功能模块        public FileResult ExportExcel()        {            Models.Usertab objUser = new Models.Usertab()            {                UserName = Request.Form["userName"] != null ? Request.Form["userName"] : "",                Gender = Convert.ToInt32(Request.Form["gender"]),                DepartId = Convert.ToInt32(Request.Form["departId"]),                StatusId = Convert.ToInt32(Request.Form["statusId"]),            };            string userid = Request.Form["userId"];            if (IsInteger(userid)) objUser.UserId = Convert.ToInt32(userid);            List<Models.Usertab> list = new DAL.UsertabDao().GetUserByMore(objUser); //组合查询获得列表            var sbHtml = new StringBuilder();            sbHtml.Append("<table border='1' cellspacing='0' cellpadding='0'>");            sbHtml.Append("<tr>");            var lstTitle = new List<string> { "姓名", "性别", "部门" };            foreach (var item in lstTitle)            {                sbHtml.AppendFormat("<td style='font-size: 14px;text-align:center;background-color: #DCE0E2; font-weight:bold;' height='25'>{0}</td>", item);            }            sbHtml.Append("</tr>");            foreach (var item in list )            {                sbHtml.Append("<tr>");                sbHtml.AppendFormat("<td style='font-size: 12px;height:20px;'>{0}</td>", item.UserName);                sbHtml.AppendFormat("<td style='font-size: 12px;height:20px;'>{0}</td>", item.GenderName);                sbHtml.AppendFormat("<td style='font-size: 12px;height:20px;'>{0}</td>", item.DepartName);                sbHtml.Append("</tr>");            }            sbHtml.Append("</table>");            //第一种:使用FileContentResult            byte[] fileContents = Encoding.Default.GetBytes(sbHtml.ToString());            return File(fileContents, "application/ms-excel", "fileContents.xls");        }


4、就完成了所有过程,测试时点导出就出现一个下载窗口,选择下载就OK了。


0 0