1

我有在我的 .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 都会变成科学数据。

其余的都很好。

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

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

4

2 回答 2

2

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

于 2012-04-27T15:31:41.320 回答
1

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

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

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

于 2012-04-27T18:28:16.727 回答