zoukankan      html  css  js  c++  java
  • [.Net] 导出Excel中身份证等数字串的解决方式

    public static void DataTableToExcel(System.Data.DataTable dtData, String FileName)    
    
    {        
    
      GridView dgExport = null;        
    
        HttpContext curContext = HttpContext.Current;        
    
      StringWriter strWriter = null;        
    
      HtmlTextWriter htmlWriter = null;        
    
      if (dtData != null)        
    
       {            
    
         HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8);
    
                 curContext.Response.AddHeader("content-disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8) + ".xls");
    
                curContext.Response.ContentType = "application/vnd.ms-excel";
    
                curContext.Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-7");
    
                curContext.Response.Charset = "GB2312";
    
                strWriter = new StringWriter();
    
                htmlWriter = new HtmlTextWriter(strWriter);  
    
               dgExport = new GridView();
    
                dgExport.RowDataBound += (GridViewFormat); //在GridView绑定数据时,将数据格式化
    
                dgExport.DataSource = dtData.DefaultView;
    
                dgExport.AllowPaging = false;
    
                dgExport.DataBind();
    
                dgExport.RenderControl(htmlWriter);
    
                curContext.Response.Write(strWriter.ToString());
    
                curContext.Response.End();  
    
           }
    
    }
    
     protected static void GridViewFormat(object sender, GridViewRowEventArgs e)    
    
    {        
    
         //1)  文本:vnd.ms-excel.numberformat:@
    
            //2)  日期:vnd.ms-excel.numberformat:yyyy/mm/dd
    
            //3)  数字:vnd.ms-excel.numberformat:#,##0.00
    
            //4)  货币:vnd.ms-excel.numberformat:¥#,##0.00
    
            //5)  百分比:vnd.ms-excel.numberformat: #0.00%
    
            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:@");
    
        }
    
            }
    
        }

    --------------------------------------

    欢迎您,进入 我系程序猿 的cnBlog博客。

    你不能改变你的过去,但你可以让你的未来变得更美好。一旦时间浪费了,生命就浪费了。

    You cannot improve your past, but you can improve your future. Once time is wasted, life is wasted.

    --------------------------------------

    分享到QQ空间  

  • 相关阅读:
    JS实现延迟载入图片
    三星指纹识别新专利:手势打开不同应用
    与计算机之间的另一种沟通方式 ——“手势识别”
    手写数字识别系统之图像分割
    机器学习实战八大分类器识别树叶带源码
    构建CTC语音识别解码网络
    MFC CListCtrl 条目取消选中
    C++ 将输入的字符串中英文大写字母改成对应小写字母,并且过滤掉非英文字母字符
    C++遍历SQLite数据库下的所有表名 .
    MFC 操作注册表 Open QueryValue等
  • 原文地址:https://www.cnblogs.com/jqmtony/p/4111296.html
Copyright © 2011-2022 走看看