当前位置:数据库 > Excel >>

怎么把EXCEL表导入到SQL中啊?

答案:SELECT * into 要导入的表名 FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\EXCEL文件名.xls";User ID=;Password=;Extended properties=Excel 5.0')...[sheet1$]
其他:把数据给我,我帮助您解决。 在sql服务器上用企业管理工具中选择对应数据库的表再选择导入功能-选择要导入的EXCEL文件一直点击下一步再选择对应的字段再完成就行了。 打开企业管理器,选择要导入的数据库,选择导入数据,数据源选择excel文件,下一步选择对应的库,选择对应的表和字段,好了,下一步 是sql server 就是这样,在企业管理器中选中要导入数据的表,右击-导入数据,在弹出的页面选择数据源类型时,先择excel版本根据你的excel版本来试,然后就是一直下一步,到最后有个预览,选择excel对应数据表的字段。点击立即导入,over! 企业管理器中直接就有excel的导入导出操作。 1、生成一个excel表
   工作表名称:website 
   包含的列:spid,spname,spiniprice,spincextent,spnowprice,spimage,spbidnum,spauctype,spbaucdt,speaucdt,spstat,buyerid,sitename,siteurl
 
   部分截图:
 

2、存储过程
 
--1、涉及到的表:wl_siteposition(网站位表),wl_comsite(竞价网站表),excel表(需要物理路径)
--2、功能:若网站位表不存在记录,则从excel表中导入;反之,把网站位表中的记录导入到竞价网站表,和 "把excel表中的数据导入数据库" 有关的数据库编程小帖士:

strong>SORT

        SORT函数返回一数字的算术平方根。 
--同时,清空网站位表,之后再把excel表中的数据导入到表wl_siteposition;


create procedure wl_job_websiteauction as

declare @err1 int 
declare @err2 int 
declare @err3 int
declare @err4 int
declare @err5 int 
declare @err6 int 

set @err1 = 0
set @err2 = 0
set @err3 = 0
set @err4 = 0
set @err5 = 0
set @err6 = 0

set nocount on 
--设置事务隔离级别
--set transaction isolation level serializable
--ole/db provider  不支持隔离层
begin tran --开始事务

  --set xact_abort on --

   if (select count(*) from wl_siteposition)>0
 begin
  --把数据从网站位表中导入到竞价网站表  
  truncate table wl_comsite --清空竞价网站表
  set @err1 = @@error 
  
  --把数据从网站位表中导入到竞价网站表中
  insert into wl_comsite(csitename,csiteurl,csitevdt,spid,buyerid)
  select sitename,siteurl,dateadd(day,7,speaucdt) as csitevdt,spid,buyerid 
  from wl_siteposition order by spid
  set @err2 = @@error 

  truncate table wl_siteposition--清空网站位表
  set @err3 = @@error
  
  --把数据从excel表导入到网站位表中
  insert into wl_siteposition(spid,spname,spiniprice,spincextent,spnowprice,spimage,spbidnum,spauctype,spbaucdt,speaucdt,spstat,buyerid,sitename,siteurl)
  select spid,spname,spiniprice,spincextent,spnowprice,spimage,spbidnum,spauctype,spbaucdt,speaucdt,spstat,buyerid,sitename,siteurl
  from opendatasource('microsoft.jet.oledb.4.0','data source="d:\work\我傲\竞拍设计\websiteposition_data.xls";extended properties="excel 8.0";persist security info=false')...[website$]
  set @err4 = @@error
     
 end
   else
 begin
  
  
  --把数据从excel表导入到网站位表中
  insert into wl_siteposition(spid,spname,spiniprice,spincextent,spnowprice,spimage,spbidnum,spauctype,spbaucdt,speaucdt,spstat,buyerid,sitename,siteurl)
  select spid,spname,spiniprice,spincextent,spnowprice,spimage,spbidnum,spauctype,spbaucdt,speaucdt,spstat,buyerid,sitename,siteurl
  from opendatasource('microsoft.jet.oledb.4.0','data source="d:\work\我傲\竞拍设计\websiteposition_data.xls";extended properties="excel 8.0";persist security info=false')...[website$]
  set @err5 = @@error
  
  --把数据从网站位表中导入到竞价网站表中
  insert into wl_comsite(csitename,csiteurl,csitevdt,spid,buyerid)
  select sitename,siteurl,dateadd(day,7,speaucdt) as csitevdt,spid,buyerid 
  from wl_siteposition order by spid
  set @err6 = @@error

 end 

   if @err1=0 and @err2=0 and @err3=0 and @err4=0 and @err5=0 and @err6=0

 commit tran 
   else
 rollback tran

set nocount off
go 创建一个 SQL Server 的 ODBC

Access 创建一个链接表 ODBC 方式链接

Excel 数据, 复制 粘贴到 Access 链接表

== Excel 数据  复制 粘贴到 SQL Server 在sql服务器上用企业管理工具中的导入功能可以实现。 可以使用opendatasource非常灵活 没有直接途径.需要借助java. 将数据保存为CSV格式文件,用sql*loader加载到sql sql数据库有相应的导入功能,选择从文件导入就可以了。 从Excel文件中,导入数据到SQL数据库中,很简单,直接用下面的语句:
/*===================================================================*/
select *  from OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;HDR=Yes;database=c:\ftng.xls','select * from [FTNG$]') 
--如果接受数据导入的表已经存在
insert into 表 select * from 
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
--如果导入数据并生成表
select * into 表 from 
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"密码"' 最稳妥的办法是用SQL Server的“导入导出工具”,可以转换格式! 在树形结构图 一栏中-->选择 表 这个菜单 右键-->所有任务-->选择导入数据-->在数据源中选择microsoft  excel 97-2000-->指定你的excel位置-->填好你的服务器名以及登录方式-->下一步-->选择你需要导入数据的sheet,其中过来有个目的,这个目的指定你要导入的表-->下一步。。。-->完成。。 上边那个Function Open_Conn(SqlDatabaseName,SqlPassword,SqlUsername,SqlLocalName,SqlConn) 
是连接sql数据库的函数,可以这样调用:
Call Open_Conn("Shat_EDG","sa","sa","(local)",SqlConn) '打开SQL Server数据库连接 

连接Excel的连接函数要重新写的,可以这样写:
function open_excel_conn(filename)
  on error resume next 
  Set conn=server.createobject("adodb.connection")
  badgirl="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.Mappath(filename)&";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1';"
  conn.open badgirl
  If Err.Number <> 0 Then
   Response.write "不能打开指定的Excel,请查实!<a href='upexcel.htm'>返回</a>"
    Response.end
  else
   On Error GoTo 0 
  end if
end function

你可以在代码的最后继续写
call open_excel_conn(Trim(Request("File")))

 可以使用DTSWizard 工具导入或者导出excel ,格式化的文本,access,等文件中的数据。 sql有数据库导入导出向导呀,用这个直接就能导入了。 用导入导出向导就可以了,SQL里面有的 第一 首先在数据库里面建立一个 和excel表列名相符的表,用sql就可以  很简单
第二步用 toad to oracal 导入就可以了 选择你建立表的地址  打开toad to oracle 建立连接 就能导入 

上一个:如何写成类似EXCEL合并单元格的SQL?
下一个:PL/SQL查询结果(远超过excel表6万),如何导出为DBF格式? DBF,号称,就是数据库,没有行数限制的!!!求

Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,