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();
                }
            }
  • 相关阅读:
    在Windows7下启动MongoDB服务的解决方案
    Spring MVC之@RequestBody, @ResponseBody 详解
    Spring MVC之@RequestParam @RequestBody @RequestHeader 等详解
    SpringMVC+Shiro权限管理
    Spring中@Async用法总结
    当spring 容器初始化完成后执行某个方法
    Java四种线程池的使用
    JavaWeb动态导出Excel可弹出下载
    kinderEditor + Struts2整合
    请求webservice接口的某方法数据
  • 原文地址:https://www.cnblogs.com/jianghaidong/p/9071628.html
Copyright © 2011-2022 走看看