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();
                }
            }
  • 相关阅读:
    在markdown中使用html
    乘车路线
    渔民的烦恼
    GEDIT外部工具
    模板匹配,以图找图(九)
    SpringBoot起飞系列-国际化(六)
    [Lyndon分解] HDU 6761 Minimum Index
    [数论]HDU 6750 Function 百度之星2020初赛第一场H题
    【雅思】【口语】描述一个可笑的场合
    面试回答数据库优化问题-数据库优化思路八点
  • 原文地址:https://www.cnblogs.com/jianghaidong/p/9071628.html
Copyright © 2011-2022 走看看