Sql 匯入 EXCEL 通用儲存過程 收藏

2022-01-31 08:53:25 字數 2650 閱讀 6499

code

sql 匯入 excel 通用儲存過程

/*--下面兩句在建立儲存過程時必須先執行,否則不能建立本儲存過程,或者呼叫出錯

set ansi_warnings on--返回警告

goset ansi_nulls on-- 指定在對空值使用等於   (=)   和不等於   (<>)   比較運算子時,這些運算子的   sql-92   遵從行為。

go--將excel資料匯入到sql資料庫

--版權 : 啟程 letwego.cn

--呼叫例項

exec spexceloutin 

@stroptions = 'in',

@strwhere = 'where 房號》0',--匯入/匯出查詢條件(包括where 關鍵字)

@strexcelpath = 'd:\test.xls',--excel的絕對路徑

@strexcelsheetname = 'sheet2',--excel裡要匯入的工作表名稱 如sheet2,注意,後面不要加上$

@strexcelfiled = '單元編號,單元名稱,房號,建築面積,樓層,樓層名稱,樓閣編號,業主',--excel工作表的字段

@strsqltablename = 'texceloutin',--sql資料庫匯入表名

@strsqlfiled = '單元編號,單元名稱,房號編號,建築面積,樓層,樓層名稱,樓閣編號,業主編號'--sql表的字段

*/create procedure spexceloutin

@stroptions varchar(

200) 

=null,

@strwhere nvarchar(

4000) =

null,

--匯入

/匯出查詢條件(包括where 關鍵字)

@strexcelpath nvarchar(

1000) =

null,

--excel的絕對路徑

@strexcelsheetname nvarchar(

50) 

=null,

--excel裡要匯入的工作表名稱 如sheet2,注意,後面不要加上$

@strexcelfiled nvarchar(

1000) =

null,

--excel工作表的字段

@strsqltablename nvarchar(

100) 

=null,

--sql資料庫匯入

/匯出表名

@strsqlfiled nvarchar(

1000) =

null

--sql表的字段

asdeclare @strsql nvarchar(

4000

)if object_id(

'tempdb..##temp

') is not null drop table ##temp

/*匯入 

*/if @stroptions='

in'and not @strexcelpath is null begin

set @strexcelpath 

='''

microsoft.jet.oledb.4.0'',

''data source="'+

@strexcelpath +'

";user id=admin;password=;extended properties=excel 5.0

'''--

將資料存放到臨時表(一)

set @strsql ='

select '+

@strexcelfiled +'

into ##temp

from 

opendatasource(

'+ @strexcelpath +

')'+ @strexcelsheetname +'$ 

'+@strwhere

--print(@strsql)

exec(@strsql) 

--將資料從臨時表匯入到sql資料庫表(二,分兩步可以做更多的處理)

set @strsql ='

insert into '+

@strsqltablename +'

('+@strsqlfiled +'

) select * from ##temp'--

print(@strsql)

exec(@strsql) 

--select 

*from ##temp

drop table ##temp

end/*

匯出 */

if @stroptions='

out'

and not @strexcelpath is null begin

set @strexcelpath =''

--導成類似(不是真正的excel,是文字格式)excel的檔案,這裡是固定的,真正用時需要修改相關引數

--exec master..xp_cmdshell 

'bcp "select * from wy_福州分公司.dbo.texceloutin" queryout c:\test.xls -c -s"(local)" -u"sa" -p"123"

'end

go

Sql 匯入 EXCEL 通用儲存過程

sql 匯入excel 通用儲存過程 下面兩句在建立儲存過程時必須先執行,否則不能建立本儲存過程,或者呼叫出錯 set ansi warnings on 返回警告 go set ansi nulls on 指定在對空值使用等於 和不等於 比較運算子時,這些運算子的sql 92 遵從行為。go 將ex...

Sql 匯入 EXCEL 通用儲存過程

sql 匯入 excel 通用儲存過程 2008 01 10 15 41 下面兩句在建立儲存過程時必須先執行,否則不能建立本儲存過程,或者呼叫出錯 set ansi warnings on 返回警告 goset ansi nulls on 指定在對空值使用等於 和不等於 比較運算子時,這些運算子的 ...

Sql 匯入 EXCEL 通用儲存過程

sql 匯入 excel 通用儲存過程 下面兩句在建立儲存過程時必須先執行,否則不能建立本儲存過程,或者呼叫出錯 set ansi warnings on 返回警告 goset ansi nulls on 指定在對空值使用等於 和不等於 比較運算子時,這些運算子的 sql 92 遵從行為。go 將e...