OFFICE集成/导入导出/交互
导入导出Excel(.Xlsx)或(.Xls)数据到SQL Server
2013-07-16 21:34:30
select excel2007 格式数据的语法
 
导入/导出 Excel (.Xlsx) 或 (.Xls) 文件数据到 SQL Server  注意:
1.导入/导出 Excel (.xls) 需要 Microsoft.Jet.OLEDB.4.0 
2.导入/导出 Excel 2007 (.xlsx) 需要 2007 Office System Driver: (数据连接控件)Data Connectivity Components. 可以从网上下载
 
-----Office中国的 tmtony  翻译    
一. 导出数据到Excel文件
 
       创建一个个EXEL文件 名称为 testing ,它拥有与sql server表 SQLServerTable 同样的字段
 
以下是查询语句
 
Excel 2003 (.Xls) 文件:
insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=D:testing.xls;', 'SELECT * FROM [Sheet1$]') select * from SQLServerTable
 
Excel 2007 (.Xlsx) 文件:
insert into OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=D:testing.xlsx;', 'SELECT * FROM [Sheet1$]') select * from SQLServerTable
 
二. 从 Excel 导入数据到 SQL Server 新表  
Excel 2003 (.Xls) 文件:
select * into SQLServerTable FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=D:testing.xls;HDR=YES', 'SELECT * FROM [Sheet1$]')
 
Excel 2007 (.Xlsx) 文件:
Select * into SQLServerTable FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=D:testing.xlsx;HDR=YES', 'SELECT * FROM [Sheet1$]')
 
三. 从 Excel 导入数据到 SQL Server 已存在的表  
Excel 2003 (.Xls) 文件:
Insert into SQLServerTable Select * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=D:testing.xls;HDR=YES', 'SELECT * FROM [Sheet1$]')
 
Excel 2007 (.Xlsx) 文件:
INSERT INTO SQLServerTable select * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=D:testing.xlsx;HDR=YES', 'SELECT * FROM [Sheet1$]')
 
 
四.从 Excel 导入数据到 SQL Server 新表 (使用动态的表名 如SQLTABLE_200110413)   (http://www.office-cn.net)
 
DECLARE @table varchar(500)
DECLARE @Q varchar(2000 )
SET @table='SQLTABLE_' +(CONVERT(VARCHAR(8),GETDATE(),112))
SET @Q= 'select * into '+ @table + ' FROM OPENROWSET("Microsoft.ACE.OLEDB.12.0", "Excel 12.0;Database=D:testing.xlsx;HDR=YES", "SELECT * FROM [Sheet1$]")'
Exec(@Q)