zoukankan      html  css  js  c++  java
  • 【ASP.NET】DataTable导出EXCEL,弹窗提示下载保存(完整代码)

            //新建ASPX
            protected void Page_Load(object sender, EventArgs e)
            {
                DataTable dt = new DataTable();
                DataColumn dc1 = new DataColumn("name", Type.GetType("System.String"));
                DataColumn dc2 = new DataColumn("sex", Type.GetType("System.String"));
                DataColumn dc3 = new DataColumn("age", Type.GetType("System.String"));
                dt.Columns.Add(dc1);
                dt.Columns.Add(dc2);
                dt.Columns.Add(dc3);
                object[, ,] arrStr = { { { "Lily", "Females", "20" } }, { { "Jack", "Males", "25" } }, { { "Bob", "Males", "30" } } };
                for (int i = 0; i < arrStr.GetLength(0); i++)
                {
                    for (int j = 0; j < arrStr.GetLength(1); j++)
                    {
                        DataRow dr = dt.NewRow();
                        for (int k = 0; k < arrStr.GetLength(2); k++)
                        {
                            dr[k] = arrStr[i, j, k];
                        }
                        dt.Rows.Add(dr);
                    }
                }
                DataToExcel(dt, "导出EXCEL" + DateTime.Now.ToString("yyyyMMdd"), null);
    
            }
            public void DataToExcel(DataTable dt, string FileName, int[] indexs)
            {
                if (dt == null)
                    return;
                if (dt.Rows.Count == 0)
                {
                    return;
                }
                try
                {
                    System.Web.UI.WebControls.GridView GVOutPut= new System.Web.UI.WebControls.GridView();
                    GVOutPut.Visible = true;
                    GVOutPut.RowDataBound += new GridViewRowEventHandler(RowDataBound);
                    GVOutPut.DataSource = dt;
                    GVOutPut.DataBind();
                    System.Web.HttpContext.Current.Response.Clear();
                    System.Web.HttpContext.Current.Response.Buffer = true;
                    System.Web.HttpContext.Current.Response.Charset = "UTF-8";
                    System.Web.HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName + ".xls", System.Text.Encoding.UTF8));
                    System.Web.HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
                    System.Web.HttpContext.Current.Response.ContentType = "application/ms-excel";
                    GVOutPut.EnableViewState = false;
                    System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN", true);
                    System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
                    System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
                    GVOutPut.RenderControl(oHtmlTextWriter);
                    System.Web.HttpContext.Current.Response.Write(@"<style> .text {mso-number-format:@; } </style> ");
                    System.Web.HttpContext.Current.Response.Write(oStringWriter.ToString());
                    System.Web.HttpContext.Current.Response.Flush();
                    System.Web.HttpContext.Current.Response.Close();
                    GVOutPut.DataSource = null;
                    GVOutPut.Visible = false;
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            static void RowDataBound(object sender, GridViewRowEventArgs e)
            {
                for (int i = 0; i < e.Row.Cells.Count; i++)
                {
                    if (e.Row.RowType == DataControlRowType.DataRow)
                        e.Row.Cells[i].Attributes.Add("style", "vnd.ms-excel.numberformat:@");
                }
            }
     效果如图:

  • 相关阅读:
    Java B/S开发模式漫谈 (转)
    struts 使用多个配置文件 strutsconfig.xml
    java 验证邮箱格式正确性、验证字符串是否为数字
    Java获取各种常用时间方法
    创建HttpServlet的基本步骤
    struts1.x 配置文件之——web.xml详解
    最常用的JAVA包
    字符串转换为日期时间格式
    struts1.x 配置文件详解
    看看别人的博客,经验总结,很宝贵
  • 原文地址:https://www.cnblogs.com/fly4j/p/4519733.html
Copyright © 2011-2022 走看看