如何防止数据以科学格式显示?

时间:2012-04-27 15:29:23

标签: asp.net vb.net excel

我有这个我在.net应用程序中运行的sql server查询。

(CONVERT(VARCHAR(8), EventDate, 112)+ substring(RequestedBy,1,1)+right( '0000000' + convert( varchar( 7 ), ContactID ), 7 )) as Contacts

它以下列格式产生以下结果:

20120731e0000001 20120731f0000002 20120731p0000003

这是我们想要的结果和格式。

问题是当我们点击导出图标将这些结果导出到excel时,第一个变为科学格式,如2.01E + 08。

中间有e的日期,例如20120731 * e * 0000001,会变成科学数据。

剩下的就好了。

任何想法如何解决这个问题?

如果我在标签部分中粘贴了错误的标签,我想提前道歉,因为我不确定修复的来源。

2 个答案:

答案 0 :(得分:2)

Excel打开导出的文件时会发生格式化。只需将列更改为具有字符串的“格式化文本”,以便显示为原始格式。

答案 1 :(得分:1)

使用Excel直接打开导出的数据文件时,所有格式都设置为“常规”。在常规格式中,Excel将格式应用于其识别为数字和日期的内容。因此,需要明确的是,问题不在于您的导出,而在于默认情况下Excel如何读取您的数据。请尝试以下方法来解决此问题。

导出为CSV。然后,使用Excel的“从文本中获取外部数据”工具将数据导入空工作簿,而不是在Excel中打开CSV。在这里,您可以指定将此字段视为TEXT而不是GENERAL。

请注意,一旦Excel将数字(或日期)格式应用于单元格,则单元格中的数据已更改。不应用新格式将带回您想要的数据。因此,您必须在 Excel打开文件之前指定格式