Home >Database >Mysql Tutorial >Sqlserver 中查询Excel

Sqlserver 中查询Excel

WBOY
WBOYOriginal
2016-06-07 15:13:211330browse

先上SQL: exec sp_configure 'show advanced options',1 reconfigure exec sp_configure 'Ad Hoc Distributed Queries',1 reconfigure SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0', 'Data Source=E:\HaierWeb\MyWeb\Doc\abc.xls;Extended Prop

先上SQL:

exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure

SELECT  *    FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source=E:\HaierWeb\MyWeb\Doc\abc.xls;Extended Properties=Excel 8.0')...Sheet1$

第一行当做表头。

其余行当成一种数据类型,且不能转换,如果有文本,有数字, 按出现多的一项显示,其余为Null

员工信息  F2

NULL      姓名
664754    张三
664783    李四

Null 处应该是 员工编号 。 前两行是表头。 

对于这种形式,应该把  数字前多输一个’(单引号) 强行转换为文本格式。快速填入相同内容 选中多个单元格后,输入字符,然后按Ctrl+Enter组合键,即可在选中的每个单元格中填入上述相同的字符。

解决方法

SELECT  *    FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source=E:\HaierWeb\MyWeb\Doc\abc.xls;Extended Properties="Excel 8.0;HDR=YES;IMEX=1;"')...Sheet1$

HDR=Yes , 是说第一列当做表头。

IMEX=1 ,  是说把表内容混合读取。

IMEX=2 , 是指可以对表内容进行 读取 和 写入.

在OleDb中,如果不存在该Excel,创建表时,自动创建Excel文件.

Jet 居然支持这么多数据库, 连Html table 也支持。 参考:http://zh.wikipedia.org/zh-cn/Microsoft_Jet_Database_Engine

查询文本文件:

文件必须是,号分割文件  
      
  HDR=YES     的时候,第一行被认为是字段名  
  HDR=NO       的时候,第一行被认为是数据  
       
  select   *   from    
  OPENROWSET('MICROSOFT.JET.OLEDB.4.0'  
  ,'Text;HDR=NO;DATABASE=C:\'   --c:\是目录 
  ,Surveys#txt)--aa#txt是文本文件名aa.txt

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn