sql2005 OPENROWSET excel 获取数据的方法

转载 2012年03月27日 14:48:15
查询时不可打开test.xls文件
不妨先把查到的结果放到临时表中然后处理
 
--1.检测是否可以打开EXCEL中的数据信息
select *from
OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;IMEX=2;DATABASE=D:\updateData\data.xls',Sheet1$
--2.若报错提示启用OPENROWSET等信息
--打开SQL2005的[配置工具]-[SQL Server 外围应用配置器]进行启用OPENROWSET
--主要是是因为SQL2005增加了安全性。
--OPENROWSET('PROVIDER服务提供商','采用CEXCEL版本,XLS路径','XLS文件的表名')
--3.若发现有些数为NULL,或者不是你XLS文件中的数据,建议,
--  把所有数据COPY到记事本保存,然后再COPY回EXCEL,
--  这样保证了EXCEL各单元格中的数据格式编码不准确导致的NULL问题

一、如我在D盘下有D:\物件编码.xls文件,有工作表名Sheet是中文命名为‘办公用品编码’,‘零件编码’。

       select * into #temp from opendatasource('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=D:\物件编码.xls')...[办公用品编码$]

       select * into #temp from opendatasource('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=D:\物件编码.xls')...[零件编码$]

二、如你的Excel文件是工作表是默认的Sheet命名为Sheet1,Sheet2等。

      select * into #temp from opendatasource('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=D:\物件编码.xls')...[Sheet1$]

      select * into #temp from opendatasource('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=D:\物件编码.xls')...[Sheet2$]

三、引用 Limpire (昨夜小楼)以下方法,也行

      OpenRowSet和OpenDataSource都能用读取用数字命名的Sheet,只不过要加单引号界定,其它不规则命名的Sheet也一样。

假设C:\Text.xls有个Sheet名字是“3”:
       select * from opendatasource('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=C:\Test.xls')...['3$']
--OR
select * from openrowset('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=C:\Test.xls',['3$'])
--OR
select * from openrowset('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=C:\Test.xls','select * from [''3$'']')
--OpenRowSet(,,'query')可以不加单引号界定:
select * from openrowset('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=C:\Test.xls','select * from [3$]')

四、本人的方法:

导出EXCEL时,对应字段数类型都要相同,EXCEL字段的名称stano,sname 和数据库的要一样,才能导出成功。

insert into openrowset('MICROSOFT.JET.OLEDB.4.0','excel 8.0;
HDR=YES;database=D:\FName.xls',sheet1$)
select stano,sname from stainfo


以上在SQL SERVER2000上测试均可以运行,是在本地查询分析器中调试。

相关文章推荐

能快速地将Excel数据导入到SQL2005中的方法

在查询分析器里,直接写SQL语句: --启用Ad Hoc Distributed Queries: exec sp_configure 'show advanced options',1 rec...

快速地将Excel数据导入到SQL2005中的方法

在查询分析器里,直接写SQL语句: --启用Ad Hoc Distributed Queries: exec sp_configure 'show advanced options',1 rec...
  • lybwwp
  • lybwwp
  • 2012年08月08日 17:22
  • 778

向SQL2005导入Excel数据出现“文本被截断,或者一个或多个字符在目标代码页中没有匹配项”的错误0xc020901c

    在向SQL2005导入Excel数据时,出现以下错误:* 错误 0xc020901c: 数据流任务: 输出“Excel 源输出”(9) 上的 输出列“hw_content”(63) 出错。返回...

sql2005中运用一条sql语句完成数据导出到Excel中

SQL code SQL SERVER 与ACCESS、EXCEL的数据转换   熟悉SQL SERVER 2000的数据库管理员都知道,其DTS可以进行数据的导入导出,其实,我们也...

sql2005通过日志恢复被删除的数据方法

1、首先要了解一个没有公开的系统函数::fn_dblog,他可以读取sql日志,并返回二进制的行数据 2、然后要了解sql的二进制数据是如何存储的 3、用自己擅长的开发工具来分析数据,得到我们需要...

excel数据导入到SQL2005

  • 2014年08月04日 17:12
  • 563B
  • 下载

实现excel导入到sql2005的方法.

  • 2011年01月08日 16:20
  • 35KB
  • 下载

sql2005导出excel 正在复制到 `表` (错误) 0xc0202009 0xc0209029 0xc0047022

今天将sql2005中的一张表,导出成Excel,出现一个错误,如下: -------------------------------------错误内容 begin----------------...
  • five824
  • five824
  • 2012年02月05日 09:32
  • 2232

SQL2005数据还原方法

  • 2015年04月20日 13:49
  • 192KB
  • 下载

ms-sql2005日志空间满解决方法

数据库日志操作 先提供一种复杂的方法压缩日志及数据库文件如下: 1.清空日志   DUMP TRANSACTION 库名 WITH NO_LOG   2.截断事务日志: ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:sql2005 OPENROWSET excel 获取数据的方法
举报原因:
原因补充:

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