使用OpenRowSet操作Excel

转载 2013年12月02日 13:36:25
有两种接口可供选择:Microsoft.Jet.OLEDB.4.0(以下简称 Jet 引擎)和Microsoft.ACE.OLEDB.12.0(以下简称 ACE 引擎)。
Jet 引擎大家都很熟悉,可以访问 Office 97-2003,但不能访问 Office 2007。
ACE 引擎是随 Office 2007 一起发布的数据库连接组件,既可以访问 Office 2007,也可以访问 Office 97-2003。
另外:Microsoft.ACE.OLEDB.12.0 可以访问正在打开的 Excel 文件,而 Microsoft.Jet.OLEDB.4.0 是不可以的。
 
语法举例:
--> Jet 引擎访问 Excel 97-2003  
select * from OpenRowSet('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;HDR=Yes;IMEX=1;Database=D:\97-2003.xls', 'select * from [Sheet1$]')   
select * from OpenRowSet('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;HDR=Yes;IMEX=1;Database=D:\97-2003.xls', [Sheet1$])   
select * from OpenDataSource('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;HDR=Yes;IMEX=1;Database=D:\97-2003.xls')...[Sheet1$]   
select * from OpenDataSource('Microsoft.Jet.OLEDB.4.0', 'Data Source=D:\97-2003.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1"')...[Sheet1$]   
 
--> ACE 引擎访问 Excel 97-2003  
select * from OpenRowSet('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;HDR=Yes;IMEX=1;Database=D:\97-2003.xls', 'select * from [Sheet1$]')   
select * from OpenRowSet('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;HDR=Yes;IMEX=1;Database=D:\97-2003.xls', [Sheet1$])   
select * from OpenDataSource('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;HDR=Yes;IMEX=1;Database=D:\97-2003.xls')...[Sheet1$]   
select * from OpenDataSource('Microsoft.ACE.OLEDB.12.0', 'Data Source=D:\97-2003.xls;Extended Properties="Excel 12.0;HDR=Yes;IMEX=1"')...[Sheet1$]   
  
--> ACE 引擎访问 Excel 2007  
select * from OpenRowSet('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;HDR=Yes;IMEX=1;Database=D:\2007.xlsx', 'select * from [Sheet1$]')   
select * from OpenRowSet('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;HDR=Yes;IMEX=1;Database=D:\2007.xlsx', [Sheet1$])   
select * from OpenDataSource('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;HDR=Yes;IMEX=1;Database=D:\2007.xlsx')...[Sheet1$]   
select * from OpenDataSource('Microsoft.ACE.OLEDB.12.0', 'Data Source=D:\2007.xlsx;Extended Properties="Excel 12.0;HDR=Yes;IMEX=1"')...[Sheet1$]  
注:
Excel 2007 工作簿文件的扩展名是:xlsx
HDR=Yes/No
可选参数,指定 Excel 表的第一行是否列名,缺省为 Yes,可以在注册表中修改缺省的行为。
IMEX=1
可选参数,将 Excel 表中混合 Intermixed 数据类型的列强制解析为文本。
 
测试环境:Visual Studio.Net 2005,Ms Sql Server 2005,Execl 2003/2007.  本文转自:http://www.cnblogs.com/breezee/archive/2008/08/27/1277975.html

相关文章推荐

使用 OpenRowSet 和 OpenDataSource 访问 Excel 97-2007

source:http://blog.csdn.net/Limpire/archive/2008/06/30/2599760.aspx#E10 使用 OpenRowSet 和 OpenDataSour...

使用 OpenRowSet 和 OpenDataSource 访问 Excel 97-2007

使用 OpenRowSet 和 OpenDataSource 访问 Excel 97-2007 接口类型语法一览注册表设置单一数据类型列的类型解析混合数据类型列的自然解析混合数据类型列的...

sql2005 OPENROWSET excel 获取数据的方法

查询时不可打开test.xls文件 不妨先把查到的结果放到临时表中然后处理   --1.检测是否可以打开EXCEL中的数据信息 select *from OPENROWSET('M...

在OpenRowSet函数中使用参数实例

以下是我自己使用中的实例,部分资料来源于网上,朋友们修改相关部分的内容后可在自己的环境下测试: 测试环境: 服务器:繁体win2003(sp2)+繁体sql2000(sp3)企业版 工作站:繁体...
  • cnjack
  • cnjack
  • 2012-06-14 16:44
  • 10839

SQL函数openrowset()的使用以及相关问题处理。

你可能常常会需要运行一个ad hoc查询从远程OLE DB数据源提取数据,或者批量向SQL Server表导入数据。在这种情况下,你可以在T-SQL(Transact-SQL,微软对SQL的扩展)中用...

使用SQL Server的OPENROWSET函数

你可能常常会需要运行一个ad hoc查询从远程OLE DB数据源提取数据,或者批量向SQLServer表导入数据。在这种情况下,你可以在T-SQL(Transact-SQL,微软对SQL的扩展)中用O...

使用 BULK INSERT 或 OPENROWSET(BULK...) 导入批量数据 (SQL Server)

本主题适用于: SQL Server(从 2016 开始)Azure SQL 数据库Azure SQL 数据仓库并行数据仓库 本主题概述了如何使用 Transact-SQL BULK INS...

vc++使用MFC操作EXCEL文件

  • 2015-09-29 09:47
  • 1.08MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)