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();
                }
            }
  • 相关阅读:
    [译]C++如何切分字符串
    Reverse Words in a String
    excel 获取中文拼音首字母
    jquery 获取css position的值
    excel 截取单元格部分内容(从指定位置截取)
    excel 根据单元格内容自动调整列宽
    excel 如何为列添加指定内容(字符串)
    android_handler(二)
    &quot;Simple Factory&quot; vs &quot;Factory Method&quot; vs &quot;Abstract Factory&quot; vs &quot;Reflect&quot;
    HDU 5074 Hatsune Miku 2014 Asia AnShan Regional Contest dp(水
  • 原文地址:https://www.cnblogs.com/jianghaidong/p/9071628.html
Copyright © 2011-2022 走看看