sql2005 OPENROWSET excel 获取数据的方法

查询时不可打开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上测试均可以运行,是在本地查询分析器中调试。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值