我在将数据从 SQL Server 2005 的结果网格粘贴到 Excel 2007 电子表格时遇到了问题。
我在 SQL Server 中有一个查询,它返回 2 列(一个数字列和一个文本列)。在一台计算机上,我可以轻松复制(右键单击 > 复制),然后只需右键单击并粘贴到 Excel 电子表格中。这没问题。
在另一台电脑上,当我尝试粘贴到 Excel 中时,它会拆分文本列并根据单词之间的空格将文本粘贴到多个列中。例如,如果其中一行包含文本,Paste me please
则在粘贴到 Excel 中时,它会拆分文本并将每个单词粘贴到 Excel 中的单独列中。
我们尝试将 SQL Server 和 Excel 中的选项与其正常运行的计算机进行比较,但没有看到任何差异。
答案1
如果您最近使用过“文本转列”,它将把这些设置应用于粘贴操作。我不记得在 Excel 2007 之前发生过这种情况,但可能曾经发生过。在开始再次复制和粘贴之前,我总是必须返回并将其重新设置为制表符分隔。
答案2
粘贴结果之前:数据 → 文本到列
- 原始数据类型:支票分隔符
- 下一个
- 分隔符:取消选中空间
- 下一个
- 结束
最后把结果贴出来。
答案3
您是否尝试过替换出现问题的计算机上的 Excel 启动模板?它可能定义了一个由您的粘贴操作触发的宏。根据 Microsoft 知识库文章 924460,模板存储在以下位置:
默认情况下,用户模板文件存储在以下位置:
- 在 Windows XP 中,C:\Documents and Settings\\Application Data\Microsoft\Templates
- 在 Windows Vista 或 Windows 7 中,C:\Users\\AppData\Roaming\Microsoft\Templates
答案4
如果您的表包含 nvarchar(max) 字段,请将该字段移至表的底部。如果字段类型与 nvarchar(max) 不同,则识别有问题的字段并使用相同的技术。保存。在 SQL 中重新选择表。如果您无法在不更改的情况下保存,则可以在“工具”|“选项”中暂时关闭相关警告。此方法没有风险。将带有标题的 SQL GRID 显示复制并粘贴到 Excel。数据可能仍会显示回车符,但至少您的数据都在同一行上。然后选择所有行记录并对 ID 列进行自定义排序。现在,您的所有记录都应该是完整且连续的。