zoukankan      html  css  js  c++  java
  • 格式化GridView并导出Excel

     1        /// <summary>
     2        /// 导出成为Excel
     3        /// </summary>
     4        /// <param name="exportTargetGridView">目标GridView</param>
     5        /// <param name="visibleNum">隐藏的列数</param>
     6        /// <param name="content">说明内容</param>

     7        public static void ExportExcel(GridView exportTargetGridView, int visibleNum, string content)
     8        {
     9            HttpContext.Current.Response.ClearContent();
    10
    11            HttpContext.Current.Response.Charset = "GB2312";
    12
    13            HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF7;
    14
    15            HttpContext.Current.Response.AddHeader("content-disposition""attachment; filename=MyExcelFile.xls");
    16
    17            HttpContext.Current.Response.ContentType = "application/excel";
    18
    19            StringWriter sw = new StringWriter();
    20
    21            HtmlTextWriter htw = new HtmlTextWriter(sw);
    22
    23            for (int i = 0; i < visibleNum; i++)
    24            {
    25                exportTargetGridView.Columns[exportTargetGridView.Columns.Count - (i + 1)].Visible = false;
    26            }

    27
    28            exportTargetGridView.RenderControl(htw);
    29
    30            sw.WriteLine(content + exportTargetGridView.Rows.Count.ToString());
    31
    32            HttpContext.Current.Response.Write(sw.ToString());
    33
    34            HttpContext.Current.Response.End();
    35        }

    同时,还要重写
            public override void VerifyRenderingInServerForm(Control control)
            
    {

            }


    如果含有类似于身份证这样的数据,在导出成为Excel后将变成科学计数法的形式显示,所以可以通过以下方式进行转换,该段代码应写在RowDataBound事件中
                if (e.Row.RowType == DataControlRowType.DataRow)
                
    {
                    e.Row.Cells[
    4].Attributes.Add("style""vnd.ms-excel.numberformat:@");
                }
  • 相关阅读:
    基于UI Automation的自动化测试框架(四)
    如何处理重命名DataSet对象的列名所导致的System.ArgumentException错误
    C# 窗体位置 Show和ShowDialog
    某列不属于表,但是列存在
    c#关于声音和flash的问题
    如何将MAC地址和IP地址绑定在一起?
    C#中经常用来获得路径方法和属性
    [转载]解决多线程中执行CreateHandle()时无法调用值Dispose()
    关于cmd命令收录
    C#中的正则表达式
  • 原文地址:https://www.cnblogs.com/EasyLive2006/p/608489.html
Copyright © 2011-2022 走看看