+ -
当前位置:首页 → 问答吧 → excel导入sql

excel导入sql

时间:2011-11-15

来源:互联网

我将excel数据导入到sql数据库中,出现一个问题。我sql表的字段用的格式是varchrt,但是数据库中每个单元格中除了原来excel字段外后面都有很多空格。请问这是怎么回事啊?

作者: dingpc   发布时间: 2011-11-15

excel 文件,在生成的时候,隐藏/透视表等处理,会将后面没有用到的很多列,填上空字符。这点很闹心。

所以,一般都会导入后指定列引用。

作者: OrchidCat   发布时间: 2011-11-15

在excel上处理,可Ctrl+shift,删除除数据外的空格,再导

作者: roy_88   发布时间: 2011-11-15

SQL code
或用语句导入

从Excel文件中,导入数据到SQL数据库中,很简单,直接用下面的语句:   
    
  /*===================================================================*/   
  --如果接受数据导入的表已经存在   
  insert   intoselect   *   from     
  OPENROWSET('MICROSOFT.JET.OLEDB.4.0'   
  ,'Excel   5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)   
    
  --如果导入数据并生成表   
  select   *   intofrom     
  OPENROWSET('MICROSOFT.JET.OLEDB.4.0'   
  ,'Excel   5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)   
    
    
  /*===================================================================*/   
  --如果从SQL数据库中,导出数据到Excel,如果Excel文件已经存在,而且已经按照要接收的数据创建好表头,就可以简单的用:   
  insert   into   OPENROWSET('MICROSOFT.JET.OLEDB.4.0'   
  ,'Excel   5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)   
  select   *   from--如果Excel文件不存在,也可以用BCP来导成类Excel的文件,注意大小写:   
  --导出表的情况   
  EXEC   master..xp_cmdshell   'bcp   数据库名.dbo.表名   out   "c:\test.xls"   /c   -/S"服务器名"   /U"用户名"   -P"密码"'   
    
  --导出查询的情况   
  EXEC   master..xp_cmdshell   'bcp   "SELECT   au_fname,   au_lname   FROM   pubs..authors   ORDER   BY   au_lname"   queryout   "c:\test.xls"   /c   -/S"服务器名"   /U"用户名"   -P"密码"'   

作者: roy_88   发布时间: 2011-11-15

学习了,

作者: terry20080416   发布时间: 2011-11-15