首页 新闻 赞助 找找看

gridview导出到excel中,隐藏包含超出11位数字的列时,就会乱码。

0
悬赏园豆:60 [已解决问题] 解决于 2013-07-28 09:24

我将不用的列用GridView.Columns.Visible = false;隐藏,接着再导出excel。

发现隐藏其他的列都没事,就是一旦隐藏那些包含超出11位数字的列时,导出的excel就会乱码。

(不知道是不是跟excel中数字超过11位就用科学计算法表示有关,可是我在导出前都将其转化为文字式数字时依然有这个问题。)

求遇到过相同的问题以及知道解决办法的大神帮帮忙。

设置gridview的RowdataBound代码如下


protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
GridView1.Columns[5].Visible = false;//这里隐藏列中有数字超过11位的
foreach (TableCell tc in e.Row.Cells)
{
tc.Attributes["style"] = "border-color:Black";
}
if (e.Row.RowIndex != -1)
{
int id = GridView1.PageIndex * GridView1.PageSize + e.Row.RowIndex + 1;
e.Row.Cells[0].Text = id.ToString();
}
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:@");
}

}

回望未来的主页 回望未来 | 初学一级 | 园豆:4
提问于:2013-07-27 17:27
< >
分享
最佳答案
0

http://www.cnblogs.com/yipeng-yu/archive/2013/03/21/2972720.html

参考一下

收获园豆:60
Yu | 专家六级 |园豆:12980 | 2013-07-27 17:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册