MVC 数据导出

来源:互联网 发布:ubuntu中的火狐浏览器 编辑:程序博客网 时间:2024/06/10 02:17
第一种数据源直接从数据库中取,导出后列表中的列名顺序和sql返回的一致
public ActionResult Export(){  //数据集合 DataSet dtSet=new DataSet ();         #region 导出Excel                System.Web.UI.WebControls.DataGrid dgExport = null;                // 当前对话                  System.Web.HttpContext curContext = System.Web.HttpContext.Current;                // IO用于导出并返回excel文件                  System.IO.StringWriter strWriter = null;                System.Web.UI.HtmlTextWriter htmlWriter = null;                string filename = HttpUtility.UrlEncode("名称", System.Text.Encoding.UTF8);                DataTable dt = dtSet.Tables[0];                foreach (DataRow row in dt.Rows)                {                    #region 业务处理                      //字典项转化,列隐藏等                    #endregion                }                               if (dt != null)                {                    //设置导出excel的单元的格式为文本类型                    string style = @"<style> td { mso-number-format:\@; } </style> ";                    // 设置编码和附件格式                    curContext.Response.Charset = "GB2312";                    Response.AppendHeader("Content-Disposition", "attachment;filename=" + filename + ".xls");                    curContext.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");//设置输出流为简体中文                    curContext.Response.ContentType = "application/vnd.ms-excel";                    //System.Text.Encoding.UTF8;                    // 导出excel文件                      strWriter = new System.IO.StringWriter();                    htmlWriter = new System.Web.UI.HtmlTextWriter(strWriter);                    // 为了解决dgData中可能进行了分页的情况,需要重新定义一个无分页的DataGrid                      dgExport = new System.Web.UI.WebControls.DataGrid();                    dgExport.DataSource = dt.DefaultView;                    dgExport.HeaderStyle.HorizontalAlign = System.Web.UI.WebControls.HorizontalAlign.Center;                    dgExport.AllowPaging = false;                    dgExport.DataBind();                    dgExport.RenderControl(htmlWriter);                    // 返回客户端                      Response.Write(style);                    Response.Write(strWriter.ToString());                }                return Content("");                #endregion}

第二种自定义列

 public ActionResult Export2()        {                      SplitPageResult<Entity> querylist = _zxbasicInfoBO.QuerySplitPage(condition);            model.Count = querylist.TotalCount;            if (ExportType == -1)            {                #region 导出Excel                string filename = HttpUtility.UrlEncode("Name", System.Text.Encoding.UTF8);                byte[] str = null;                System.Web.UI.WebControls.DataGrid dgExport = null;                // 当前对话                  System.Web.HttpContext curContext = System.Web.HttpContext.Current;                // IO用于导出并返回excel文件                  System.IO.StringWriter strWriter = null;                System.Web.UI.HtmlTextWriter htmlWriter = null;                DataTable dt = new DataTable();                dt.Columns.Add("序号", Type.GetType("System.Int32"));                dt.Columns[0].AutoIncrement = true;//自增                dt.Columns[0].AutoIncrementSeed = 1;//起始为1                dt.Columns[0].AutoIncrementStep = 1;//步长为1                dt.Columns.Add("列名1", Type.GetType("System.String"));                dt.Columns.Add("列名1", Type.GetType("System.String"));                .....                for (int i = 0; i < model.Count; i++)                {                    DataRow dr = dt.NewRow();                    dr["列名1"] = querylist.Items[i].属性;                ......    // 绑定数据源                    dt.Rows.Add(dr);                }                if (dt != null)                {                    //设置导出excel的单元的格式为文本类型                    string style = @"<style> td { mso-number-format:\@; } </style> ";                    // 设置编码和附件格式                    curContext.Response.Charset = "GB2312";                    Response.AppendHeader("Content-Disposition", "attachment;filename=" + filename + ".xls");                    curContext.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");//设置输出流为简体中文                    curContext.Response.ContentType = "application/vnd.ms-excel";                    // 导出excel文件                      strWriter = new System.IO.StringWriter();                    htmlWriter = new System.Web.UI.HtmlTextWriter(strWriter);                    // 为了解决dgData中可能进行了分页的情况,需要重新定义一个无分页的DataGrid                      dgExport = new System.Web.UI.WebControls.DataGrid();                    dgExport.DataSource = dt.DefaultView;                    dgExport.HeaderStyle.HorizontalAlign = System.Web.UI.WebControls.HorizontalAlign.Center;                    dgExport.AllowPaging = false;                    dgExport.DataBind();                    dgExport.RenderControl(htmlWriter);                    // 返回客户端                      Response.Write(style);                    Response.Write(strWriter.ToString());                }                return Content("");                #endregion            }            else            {                return View(querylist.Items);            }        }




0 0
原创粉丝点击