【问题标题】:Export data from SQL Server query to excel将数据从 SQL Server 查询导出到 Excel
【发布时间】:2013-07-31 03:26:47
【问题描述】:

我想将查询中的数据导出到 Excel 文件。我知道这里有很多这样的问题,但在我的情况下没有一个是可以接受的。

例如,使用 OPENROWSET 为这个主题点赞:T-SQL: Export to new Excel file

insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
'Excel 8.0;Database=D:\testing.xls;', 
'SELECT * FROM [SheetName$]') select * from SQLServerTable

它只有在我自己创建 testing.xls 时才能成功执行,并且还准确定义了将从我的查询中导出的列数在这个 excel 文件中。否则,会出现错误:列名或提供的值的数量与表定义不匹配。

我在这里也尝试了另一种解决方案:http://weblogs.sqlteam.com/mladenp/archive/2006/07/25/10771.aspx using Exec master..xp_cmdshell

确实有效,但是,我听说 xp_cmdshell 对 SQL Server 来说是一个很大的安全威胁。所以,也许我不应该使用它。

我还有其他方法可以尝试吗?

【问题讨论】:

  • 您尝试过任何解决方案吗?
  • 我想要一个 TSQL 解决方案在我的存储过程中执行它,所以这些解决方案不符合我的要求。
  • 检查这个问题的答案是否适合你:stackoverflow.com/questions/15896765/…

标签: sql-server security export-to-excel


【解决方案1】:

如果您正在寻找一种快速而简单的解决方案,您可以使用 Management Studio 本身。

步骤如下:

  • 编写查询并运行它
  • 右键单击“结果”窗格并选择“将结果另存为...”
  • 选择您的文件夹/文件名并确保在下方选择了 CSV 类型
  • 现在使用 Excel 打开您的 CSV 文件;如果合适,将其作为原生 Excel 格式保存在 Excel 中

如果您需要程序化解决方案,这对您没有帮助,在这种情况下,您必须使用 Microsoft (Microsoft.Office.Interop.Excel) 或 3rd 方解决方案;你甚至可以build one using Office Open XML

如果您需要 TSQL 解决方案,您在问题中提到的 OPENROWSET 应该没问题。

您可以使用仅限 Excel 的解决方案并使用 Excel 本身中的数据窗格导入数据(从 SQL 服务器导入)。

另一个不必耦合到 SQL Server 或 Excel 本身的可能性是Powershell。但是,我不喜欢 Powershell,所以如果您更喜欢这种方法,则需要进行更多调查。

另外,this 有点过时但读起来很有趣。

【讨论】:

  • 我需要一个 TSQL 解决方案,使用 OPENROWSET,我需要自己创建 excel 文件,为其定义列,否则会出现错误:列名或提供的值的数量与表定义不匹配。跨度>
【解决方案2】:

为此尝试使用更新版本的 Excel。从您的查询来看,您使用的是 Excel 97 - 此版本中可能存在大量错误和不兼容性。

如果这没有帮助,其他选项是: - 像 Ozren 建议的那样从 SSSM 手动执行此操作 - 尝试为此创建 SSIS 包

这里有几个其他主题可以帮助您入门

http://www.connectionstrings.com/excel/

How do you transfer or export SQL Server 2005 data to Excel

Export SQL query data to Excel

【讨论】:

    猜你喜欢
    • 2013-06-28
    • 1970-01-01
    • 1970-01-01
    • 2020-10-30
    • 2016-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多