SSMS查询到Excel没有格式化

时间:2015-07-29 21:17:23

标签: sql sql-server excel

我有一个查询结果如下:

记下PrimaryIdentifier值。

enter image description here

每当我将其导出到excel文件或甚至将其复制到excel文件时。它看起来像:

enter image description here

无论如何我可以将其导出或复制到excel,没有格式化吗?

将Excel中的格式更改为文本无法解决问题。

是否可以对查询本身进行任何更改,以便在excel中获得所需的o / p?显然,主标识符列必须是145231E44而不是1.45E + 49!

3 个答案:

答案 0 :(得分:1)

在粘贴值之前将列格式化为文本,如果您在粘贴后尝试执行此操作,则为时已晚,因为该值已更改。

如果你不能这样做,那么在查询中你可以在值前加上一个“X”,这样它就被视为文本。不幸的是,你不能只使用Excel的替换功能来删除“X”,因为在测试时,它将被还原为一个数字。

您可以插入一列并将其格式化为文本

Range("B1:B200").NumberFormat = "@"

然后将A中的值从A中取出,并删除X:

Range("B1").Value = Mid(Range("A1").Value, 2, 255)

答案 1 :(得分:0)

MS-Access是SQL Server和Excel之间的绝佳渠道。

将SQL表链接到Access,这样您就可以创建一个查询(我称之为" Export_Query")以从SQL Server表中获取所需的所有字段。

使用函数TransferSpreadsheet函数从查询复制到Excel:

DoCmd.TransferSpreadsheet acExport, _
                          acSpreadsheetTypeExcel9, _
                          "Export_Query", _
                          "C:\temp\excel.xlsx", _
                          True

Excel工作簿必须存在于您指定的位置。只要您的PrimaryIdentifier被定义为字符串数据类型(我使用varchar),您就应该在excel文件中获得正确的结果。

我的测试表在SQL Server中看起来像这样:

source table in excel

,Excel中的结果如下所示:

Excel data

答案 2 :(得分:0)

我的问题是:

使用=" [PrimaryIdentifier]"

在select子句中包装参数(PrimaryIdentifier)

Ex:SELECT' ="' + PrimaryIdentifier +'"'从....那里......

这可确保复制或导出时查询结果在Excel工作表中保持相同的格式。