Sql server 和 excel 表格的数据交互

来源:互联网 发布:微信数据精灵授权码 编辑:程序博客网 时间:2024/06/05 09:43

软件环境: sql server 2005 + microsoft office 2007,excel 文档都另存为.xls文件。

1.将Excel表的数据导入到sql server:

SELECT * into NewTableName
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="D:/NonSave/数据表.xls";User ID=;Password=;Extended properties=Excel 8.0')...[Sheet1$]

说明:A. 执行语句前 NewTableName 在数据库中是不存在的;

B. excel 表的第一行将作为 NewTableName 的字段名;

C. 需要在 sql server 2005外围应用配置器中启用 "OPENROWSET 和 OPENDATASOURCE "支持。

 

2. 在SQL SERVER里查询Excel数据:

SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="D:/NonSave/数据表.xls";User ID=;Password=;Extended properties=Excel 8.0')...[Sheet1$]
where ID>'100'

说明:A. 需要在 sql server 2005外围应用配置器中启用 "OPENROWSET 和 OPENDATASOURCE "支持。

 

3. 在SQL SERVER里往Excel文件插入数据:

insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="D:/NonSave/小表.xls";User ID=;Password=;Extended properties=Excel 5.0')...[Sheet1$](ColName1,ColName2) values ('abcd','456')

说明:A. 需要在 sql server 2005外围应用配置器中启用 "OPENROWSET 和 OPENDATASOURCE "支持。

B. 需要指明列名和对应值。

4. 将 SQL SERVER 的查询结果保存到excel文档中

4.1 整个表导出

EXEC master..xp_cmdshell 'bcp DBName.dbo.TableName out d:Temp.xls -c -q -S"." -U"sa" -P"1234"'

4.2 查询结果导出

EXEC master..xp_cmdshell 'bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname" queryout C:/ authors.xls -c -S"." -U"sa" -P"1234"'

说明:A. 需要在 sql server 2005外围应用配置器中启用 "xp_cmdshell "。

B. 确认该目录下 C:\Program Files\Microsoft SQL Server\90\Tools\Binn 有bcp.exe文件,并且环境变量下的path里面加C:\Program   Files\Microsoft   SQL   Server\90\Tools\Binn这个目录,否则找不到找不到bcp.exe。

原创粉丝点击