GridView导出Excel

首先要重载VerifyRenderingInServerForm方法,否则会报“GridView要在有run=server的From体内”的错。

public override void VerifyRenderingInServerForm(Control control)
        {
            // Confirms that an HtmlForm control is rendered for
        }
 
 

protected void btnExport_Click(object sender, EventArgs e)
        {
           string vOutputName = lblTitle2.Text.Trim();//Excel名称

            gvNoPriseMember.AllowPaging = false;
            gvNoPriseMember.AllowSorting = false;

            gvNoPriseMember.DataSource = dataView;
            gvNoPriseMember.DataBind();

            if (dataView.Table.Rows.Count > 0)
            {
                gvNoPriseMember.Attributes.Add("style", "vnd.ms-excel.numberformat:@");//格式化Excel(设置格式为文本)
               
                foreach (GridViewRow row in gvNoPriseMember.Rows)
                {
                    row.Cells[4].Attributes.Add("style", "vnd.ms-excel.numberformat:yyyy-MM-dd HH:mm:ss");                   
                }
                ExportExcel.ExportExcelNew(vOutputName, gvNoPriseMember, Page);
            }
            else
            {
                PublicClass.Alert(GetGlobalResourceObject("PublicGlobal", "_NoData").ToString(), this);
                return;
            }
}


在导出的时候,如果某个字段为长数字(如身份证号码511922198507151512)、以0开头的编号(如0809111212)之类的数 据。如果不加处理在导出的Excel文件中将会被分别当作5.11922E+17和809111212来处理,这样与我们要达到 的实际效果不一致。所以我们要加以处理,即给单元格数据规定格式。常见的格式如下:

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%

原文地址:https://www.cnblogs.com/li12fei12/p/2566128.html