【问题标题】:Import data into Excel from SQL Server query从 SQL Server 查询将数据导入 Excel
【发布时间】:2013-06-28 04:21:25
【问题描述】:

我找到了一些将数据从 SQL Server 查询导入 Excel 的方法,如下所示,但它们似乎都不起作用

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

错误:

OLE DB 提供程序“Microsoft.Jet.OLEDB.4.0”不能用于分布式查询,因为该提供程序配置为在单线程单元模式下运行。

【问题讨论】:

标签: c# sql-server tsql


【解决方案1】:

您应该看看Pinal Dave's 解决方案。此外,可能您有 x64 机器,因此由于驱动程序不可用,它无法工作。查看this answer

【讨论】:

    【解决方案2】:

    如错误消息所示,SQL Server 将无法使用此方法将数据传输到 Excel。一种不需要编程的可能解决方案: 打开 Excel,单击数据选项卡,从其他来源,SQL Server。将打开一个窗口提示输入服务器名称,提供用反斜杠分隔的服务器名称和实例名称。示例:localhost\sqlexpress(如果您在 PC 上运行 sql server express edition,否则无论您在哪个服务器上安装 SQL Server,以及实例名称)。通过提供您在 SQL Server 中定义的用户 ID 和密码进行身份验证,或者只需单击 Windows 身份验证。然后您将有机会选择表格名称。然后数据将被传输到 Excel 表格中,您可以通过右键单击它来随意刷新该表格。 请说明您是否需要可能需要编程的替代解决方案。

    【讨论】:

      【解决方案3】:

      如果您有 32 位 Office 并且不想卸载它,请尝试从 microsoft(64 位)安装最新的 AccessDatabaseEngine。不卸载32位版本安装请到命令行中的下载目录下写

      AccessDatabaseEngine.exe /passive
      

      然后在 SSMS 中,您可以使用代码导入 Excel:

      FROM OPENROWSET
      ('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=C:\path\sheet.xlsx', [Sheet1$])
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多