Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 将大量数据粘贴到Excel_Sql Server_Excel_Export To Excel_Export To Csv - Fatal编程技术网

Sql server 将大量数据粘贴到Excel

Sql server 将大量数据粘贴到Excel,sql-server,excel,export-to-excel,export-to-csv,Sql Server,Excel,Export To Excel,Export To Csv,我有一个使用ManagementStudio在SQLServer中运行的查询。结果将输出到网格,然后复制并粘贴到Excel工作表,并以.csv格式保存。我以前做这件事从来没有遇到过任何问题,但这个特定的查询包含一个列,其中包含一大块HTML数千个字符。。如果我尝试将整个查询输出粘贴到excel中,它将无法处理该列,并且该工作表不可用 我必须粘贴所有其他内容,然后分别复制包含HTML的每一行,并双击Excel中的目标单元格以进入编辑模式。这有什么办法吗 我尝试过:输出到文本,但无论我在SSMS中将

我有一个使用ManagementStudio在SQLServer中运行的查询。结果将输出到网格,然后复制并粘贴到Excel工作表,并以.csv格式保存。我以前做这件事从来没有遇到过任何问题,但这个特定的查询包含一个列,其中包含一大块HTML数千个字符。。如果我尝试将整个查询输出粘贴到excel中,它将无法处理该列,并且该工作表不可用

我必须粘贴所有其他内容,然后分别复制包含HTML的每一行,并双击Excel中的目标单元格以进入编辑模式。这有什么办法吗

我尝试过:输出到文本,但无论我在SSMS中将最大列值设置为什么,它都会截断HTML列。我尝试了输出到文件,但它给我的唯一文件选择是Crystal Reports。有没有一种方法可以将Excel全局置于编辑模式,以便我可以一次性粘贴整个内容,或者告诉SSMS Express版本输出到.csv文件


ETA:我试着右键点击网格结果并保存为.csv,但它仍然会截断HTML列。即使我将“结果到文本”选项设置为8K字符。在“结果到网格”选项中将非XML数据设置为超过64K。

在SSMS 2012中,不确定早期版本,您可以右键单击结果并选择“将结果另存为…”。。。然后选择CSV作为输出文件。

正如@Remy指出的,您是否尝试过使用OPENROWSET:

-编辑

确保已启用临时分布式查询:

sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ad Hoc Distributed Queries', 1;
GO
RECONFIGURE;
GO

祝你好运。

右键单击SSMS中的数据库选择任务,然后导出数据。。。。将SQLServer设置为源,将Excel文件设置为目标。在下一步中,选择“编写查询”以指定。。。并粘贴您的查询。如果需要自动化此操作,可以使用SSIS。
如果您没有SSM或不想每次都通过导出向导,则可以使用免费工具。从下载R-Tag报表管理器,将查询添加为SQL即席报表并将其导出到excel

你为什么不能直接使用openrowset将结果写到我不清楚这与编程有什么关系…Pete编程除了什么都算不上?它与编程相关,因为它是如何处理编程结果的。谢谢,我编辑了上面关于这个的原始帖子。即使应该应用的唯一选项是为更大的列设置,但在我使用此方法时会截断数据。这可能有效,但是,现在我有一个64位版本的服务器,我得到一个错误:OLE DB提供程序“Microsoft.Jet.OLEDB.4.0”不能用于分布式查询,因为该提供程序配置为在单线程单元模式下运行。从我在网上搜索的理解来看,唯一的解决办法是卸载现有的Office产品并重新安装64位版本?不要认为我很快就有时间这么做了…请参阅编辑-听起来像是SQL Server配置问题。祝你好运。不,这还不能解决问题。我发现了很多关于这个问题的参考资料,唯一的解决办法似乎是卸载32位版本的Office并重新安装。显然,32位版本的喷气式发动机安装了Office。至少从我能收集到的。我确实尝试过重新配置,但错误依然存在。我将把它标记为答案,因为据我所知,如果不是32位/64位问题,它应该可以工作。
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ad Hoc Distributed Queries', 1;
GO
RECONFIGURE;
GO