Gridview数据导出excel时身份证号码为科学计数法的解决方法

时间:2022-01-17 04:44:07
  if (e.Row.RowType == DataControlRowType.DataRow)
{
string id = this.GridView1.DataKeys[e.Row.RowIndex]["id"].ToString();
if (e.Row.RowState == DataControlRowState.Normal || e.Row.RowState == DataControlRowState.Alternate)
{
((LinkButton)e.Row.Cells[2].Controls[0]).Attributes.Add("onclick", "javascript:return confirm('你确认要删除此记录吗?')");
}
e.Row.Cells[1].Text = String.Format("<a href='javascript:Targetedit({0});'>编辑</a>", id);
e.Row.Cells[5].Attributes.Add("style", "vnd.ms-excel.numberformat:@;"); //保证导出excel不会已科学计数法显示
// e.Row.Cells[4].Attributes.Add("style", "vnd.ms-excel.numberformat:@;");
}

  

通常在Gridview中将数据导出为excel时,身份证号码常常被以科学计数法显式,影响导出的正确性,经过在网上查找资料,发现用下面的方法可以解决这种问题

在gridview的rowdatabound事件中写下面的代码

if (e.row.rowtype=datacontrolrowtype.datarow) then

    e.row.cell(i).attributes.add("style","vnd.ms-excel.numberformat:@;")

end  if

  

其中i为身份证号码的那一列,数的时候从0开始,其实也就是加了个格式,更多的解答请用vnd.ms-excel.numberformat做关键词搜索