C# 数据格式问题。将GridView导出到Excel
当我将GridView导出到Excel时,GridView中有一个字符串C# 数据格式问题。将GridView导出到Excel,c#,asp.net,excel,gridview,C#,Asp.net,Excel,Gridview,当我将GridView导出到Excel时,GridView中有一个字符串(1008901023816550000000),不知何故在Excel中保存为一个科学编号(1.0089E+21) 我正在使用.NET4.0 以下是我尝试过的,但他们没有解决问题: 在BoundColumn标记中添加了DataFormatString=“{0:g}” 在调用RenderControl后设置样式 string style=@“。文本{mso数字格式:\@;}”; 有人能解释一下这个问题吗?假设您正在使用CSV
(1008901023816550000000)
,不知何故在Excel中保存为一个科学编号(1.0089E+21)
我正在使用.NET4.0
以下是我尝试过的,但他们没有解决问题:
BoundColumn
标记中添加了DataFormatString=“{0:g}”
RenderControl
后设置样式
string style=@“。文本{mso数字格式:\@;}”;
有人能解释一下这个问题吗?假设您正在使用CSV文件执行导出: 这是一个难以撼动的卓越怪癖。我知道的唯一想法是尝试在CSV文件中使用如下格式:
="1008901023816550000000"
这将迫使它成为一个返回所需文本的公式。试试这个,它会起作用
string style = @"<style> TD { mso-number-format:\@; } </style> ";
string style=@“TD{mso数字格式:\@;}”;
在值之前插入一个引号(”
),以强制Excel将其视为字符串而不是数字?我不知道这是否可以通过编程实现,但直接手动输入Excel就可以了。@Marc B:谢谢。我刚才试过了,但是带单引号的“1008901023816550000000”也将被存储。@sza:是的,你被一个等号和双引号卡住了。很抱歉但考虑到Excel会做什么和不会做什么,这可能是唯一可能的方法。从好的方面来说,就电子表格的计算和格式而言,它是一个真正的文本值,而不是一个数字。sza-我知道这已经太晚了,但只是为了更新,你试过上面的代码吗?只需添加一行。您不必更改数据。
string style = @"<style> TD { mso-number-format:\@; } </style> ";