zoukankan      html  css  js  c++  java
  • 导出excel 并且处理长数字,处理科学计数法,以文本形式存储的数字

    /// <summary>
            /// 导出Excel文件,并自定义文件名
            /// </summary>
            /// <param name="dtData">数据源</param>
            /// <param name="FileName">导出文件名称</param>
            /// <param name="numberformat">需要处理科学计数法的列的下标</param>
            public static void DataTable3Excel(DataTable dtData, String FileName,string numberformat)
            {
                GridView dgExport = null;
                HttpContext curContext = HttpContext.Current;
                StringWriter strWriter = null;
                HtmlTextWriter htmlWriter = null;
    
                if (dtData != null)
                {
                    curContext.Response.Clear();
                    HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8);
    
                    curContext.Response.AddHeader("content-disposition", "attachment;filename="" + System.Web.HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8) + ".xls"");
                    curContext.Response.ContentType = "application/vnd.ms-excel";
                    curContext.Response.Charset = "utf-8";
                    curContext.Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
    
    
                    strWriter = new StringWriter();
                    htmlWriter = new HtmlTextWriter(strWriter);
                    dgExport = new GridView();
                    dgExport.DataSource = dtData.DefaultView;
                    dgExport.AllowPaging = false;
                    dgExport.DataBind();
                    
                    //判断是否存在需要处理科学计数法的列,存在则进行相对应的列的处理,处理为“以文本形式存储的数字”
                    if(numberformat!="")
                    {
                        string[] arraystr = numberformat.Split(',');
                        foreach (GridViewRow dg in dgExport.Rows)
                        {
                            for (int i = 0; i < arraystr.Length; i++)
                            {
                                dg.Cells[Convert.ToInt32(arraystr[i])].Attributes.Add("style", "vnd.ms-excel.numberformat: @;");
                            }
                        }
                    }
                    
                    dgExport.RenderControl(htmlWriter);
                    curContext.Response.Write("<meta http-equiv="content-type" content="application/vnd.ms-excel; charset=utf-8"/>" + strWriter.ToString());
                    curContext.Response.End();
                }
            }
  • 相关阅读:
    ajax异步更新的理解
    Java 中的匿名内部类
    Java 中的方法内部类
    Java 中的静态内部类
    Java 中的成员内部类
    Java 中的 static 使用之静态方法(转)
    构造方法
    成员变量与局部变量的区别
    script标签属性sync和defer
    jsonp原理
  • 原文地址:https://www.cnblogs.com/jianghaidong/p/9071628.html
Copyright © 2011-2022 走看看