我有一个查询结果如下:
记下PrimaryIdentifier值。
每当我将其导出到excel文件或甚至将其复制到excel文件时。它看起来像:
无论如何我可以将其导出或复制到excel,没有格式化吗?
将Excel中的格式更改为文本无法解决问题。
是否可以对查询本身进行任何更改,以便在excel中获得所需的o / p?显然,主标识符列必须是145231E44而不是1.45E + 49!
答案 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中看起来像这样:
,Excel中的结果如下所示:
答案 2 :(得分:0)
我的问题是:
使用=" [PrimaryIdentifier]"
在select子句中包装参数(PrimaryIdentifier)Ex:SELECT' ="' + PrimaryIdentifier +'"'从....那里......
这可确保复制或导出时查询结果在Excel工作表中保持相同的格式。