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:@");
                }
            }
     效果如图:

  • 相关阅读:
    时间模块(二)datetime
    xmltodict模块
    C和指针
    C和指针指针
    笔试2
    istream_iterator,ostream_iterator与vector的转换
    C++工厂方法与反射的简单实现
    rpcndr.h和wtypes.h冲突Bug的解决方案
    ubuntu 9.04 安装mysql
    QT in Ubuntu cannot find lfreetype
  • 原文地址:https://www.cnblogs.com/haoxianrui/p/4519733.html
Copyright © 2011-2022 走看看