代码改变世界

MSSQL导入导出EXCEL

2010-12-29 16:31  ☆冷枫☆  阅读(3394)  评论(0编辑  收藏  举报

      在sql2005中需要操作Excel导入导出数据,我们可以这样来处理。

      1.导入数据:      

/***
 * 这种方式通过使用 OPENDATASOURCE 或 OPENROWSET 函数为特定目的导入数据。
 *下列代码示例也能将 Excel Customers 工作表数据导入新的 SQL Server 表: 
**
*/
SELECT * INTO NEWTABLE FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source=d:/gbs.xls;Extended Properties=Excel 8.0')...[Sheet1$]

SELECT * INTO NEWTABLE FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=d:/gbs.xls'[Sheet1$])

SELECT * INTO NEWTABLE FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=d:/gbs.xls''SELECT * FROM [Sheet1$]')

 

 

     如果数据库中已经存在对应的表了,可以通过下面的方式来执行导入操作:  

INSERT INTO 已存在表名 SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=d:/gbs.xls''SELECT * FROM [Sheet1$]')

 

     

      2.导出数据      

--将SQL SERVER中查询到的数据导成一个Excel文件
--
====================================================
T-SQL代码:
EXEC master..xp_cmdshell 'bcp 库名.dbo.表名 out d:/Temp.xls -c -q -S"servername" -U"sa" -P""'
参数:S 是SQL服务器名;U是用户;P是密码

--T-SQL DEMO
EXEC master..xp_cmdshell 'bcp testDB.dbo.gbs out d:/Temp.xls -c -q -S"." -U"sa" -P"1qaz-pl,"'
--====================================================

 

     如果在执行导出的过程中,出现异常信息需要检查下面两点:1.是否已经关闭excel文件;2.确认外围应用配置器中的xp_cmdshell是否启用。