从SQL Server复制/粘贴数据到Excel将文本分成多列?


14

将数据从SQL Server 2005的结果网格粘贴到Excel 2007电子表格时遇到问题。

我在SQL Server中有一个查询,该查询返回2列(数字列和文本列)

在这里的一台计算机上,我可以很高兴地复制(右键单击>复制),然后右键单击并粘贴到Excel电子表格中。没问题。

在这里的另一台计算机上,当我尝试粘贴到excel时,它会拆分文本列,并根据单词之间的间距将文本粘贴到多个列中。

例如,如果其中一行具有...

请粘贴我

...然后粘贴到excel中时,它将拆分文本并将每个单词粘贴到excel中的单独列中。

我们已经尝试将SQL Server和excel中的选项与可以正常运行但看不到差异的计算机进行比较。

任何想法欢迎

谢谢

Answers:


20

如果您最近使用过“文本到列”,它将把这些设置应用于“粘贴”操作。我不记得在Excel 2007之前会发生这种情况,但是可能会发生。在开始再次复制和粘贴之前,我总是必须返回并将其设置为制表符分隔符。


是的,您是对的-我们已经破解了-谢谢
保罗

有效。谢谢。
Sagar Shirke

7

粘贴结果之前:数据→文本到列

  • 原始数据类型:检查分隔
  • 下一个
  • 定界符:取消选中空格
  • 下一个

最后粘贴结果。


1

您是否尝试过更换有问题的计算机上的Excel启动模板?它可能定义了由粘贴操作触发的宏。根据Microsoft知识库文章924460,模板存储在以下位置:

默认情况下,用户模板文件存储在以下位置:

  • 在Windows XP中C:\ Documents and Settings \\ Application Data \ Microsoft \ Templates
  • 在Windows Vista或Windows 7中C:\ Users \\ AppData \ Roaming \ Microsoft \ Templates

1

我发现如果退出Excel,然后重新启动它并重新加载电子表格,它将清除“文本到列”选项,因此粘贴将再次按预期工作。

Hector的回答很不错,因为您不必退出Excel,但这也可以正常工作,而且非常快捷简便。


我认为您系统中的某些Excel更改了默认选项。因此,我认为将所有内容都重新打开很容易,而不是搞乱配置或数据转换。
Juan Acosta

0

如果您的表包含一个nvarchar(max)字段,则将该字段移到表的底部。如果字段类型与nvarchar(max)不同,则标识一个或多个有问题的字段并使用相同的技术。保存。重新选择SQL中的表。如果您不能保存而没有更改,则可以暂时打开“工具”中的相关警告。选项。这种方法没有风险。将带有标题的SQL GRID显示复制并粘贴到Excel。数据可能仍显示回车符,但至少您的数据都在同一行上。然后选择所有行记录,并在ID列上进行自定义排序。现在,您的所有记录都应保持完整且连续。


0

我时常遇到类似的情况,当用户在用于注释的列中使用回车/换行符时,行会分成多行。我在这里找到了适用于SQL 2012/2014的解决方案。

显然,这在早期版本的SQL Server中不是问题。如果您不想浏览该链接,请按照以下方法在SQL中解决此问题:

REPLACE(REPLACE([YourColumnHere], CHAR(10), ''), CHAR(13), '')

0

粘贴单击选项后,在Excel中解决此问题的方法。

“使用文本导入向导”->带分隔符->下一步选中“制表符”,选中“将连续定界符视为一个”->下一步

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.