

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)