如何将sql表数据导出到excel工作表中?

Posted

技术标签:

【中文标题】如何将sql表数据导出到excel工作表中?【英文标题】:how to export sql table data into excel worksheet? 【发布时间】:2016-08-10 07:20:05 【问题描述】:

我有这张表,我想将其数据导出到我的 excel 文件中。 到目前为止,我已经尝试了这里的每个主题,但没有任何效果。 我试过这两个:

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


insert into OPENROWSET('Microsoft.ACE.OLEDB.12.0',
    'Excel 8.0;Database=D:\excel\testing.xls;', 
    'SELECT * FROM [newStart$]') select * from OutputResult

当我用 jet 运行它时,我会得到这个错误:

OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)" returned message "The Microsoft Jet database engine could not find the object 'newStart$'.  Make sure the object exists and that you spell its name and the path name correctly.".
 Msg 7350, Level 16, State 2, Line 1 Cannot get the column information from OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)".

当我运行 ACE.OLEDB 时,我得到了这个:

OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)" returned message "The Microsoft Office Access database engine could not find the object 'newStart$'.  Make sure the object exists and that you spell its name and the path name correctly.".
Msg 7350, Level 16, State 2, Line 1
Cannot get the column information from OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)".

我也给我的 sql 帐户完全控制权限。 另外我也运行这两个:

USE [master]
GO
EXEC master . dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'AllowInProcess' , 1
GO

EXEC master . dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'DynamicParameters' , 1
GO

2:

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

如果有人能指出我正确的方向,我将不胜感激。

【问题讨论】:

您可以使用 SSIS 来执行此操作,如果您有此选项 【参考方案1】:
strSqlQry = "Place SQL Qry Here"
vFilePath = "Database Path"

'Create Objects
Set conn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")

'Open Connection
conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & vFilePath & ";" & _
 "Extended Properties=""Excel 8.0;HDR=Yes;"";"

'Execute Qry
rs.Open strSqlQry, conn, adOpenStatic, adLockOptimistic

'Place recorset into excel worksheet
ActiveSheet.Range("A1").CopyFromRecordset (NewRS)

rs.Close

Set rs = Nothing
Set conn = Nothing

【讨论】:

我是新的sql概念,我应该把它放在我的存储过程中吗? 因为我希望它用 sql 查询生成。【参考方案2】:

您可以使用本主题中写的方式How do you transfer or export SQL Server 2005 data to Excel

在 excel 中使用外部数据菜单连接到数据库

【讨论】:

在我提出这个问题之前,我已经了解了所有这些主题。不过还是谢谢。

以上是关于如何将sql表数据导出到excel工作表中?的主要内容,如果未能解决你的问题,请参考以下文章

ROBDC SqlSave:如何将数据导出到 Excel 工作表中?

将 sql 数据从数据透视表存储过程导出到 excel

如何将SQL Server中多个表的数据一次性返回到一张EXCEL工作表(Sheet)中

怎样将MySQL数据导出到Excel表中

将数据从 MS Sql Server 存储过程导出到 excel 文件

将带有结果的多个查询导出到 Excel 到一个工作表中