Excel文件导入数据库多个Sheet

jinseyd 2006-06-14 02:55:40
我想把Excel文件导入数据库,因为Excel文件中有好多Sheet,而且名称不确定。
就把这些Sheet以Sheet1;Sheet2;Sheet3;的形式传入数据库.

DECLARE @excfileName nvarchar(1000)
DECLARE @excsheet nvarchar(100)
EXEC('SELECT * into tab1 FROM openrowSET(''MICROSOFT.JET.OLEDB.4.0'',''Excel 8.0;HDR=YES;DATABASE='+@excfileName+''',['+@excsheet+']) ')

如果是一个Sheet就好解决,可是这种情况,哪位朋友帮忙,不胜感激!
...全文
430 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
自由的企鹅 2006-06-14
  • 打赏
  • 举报
回复
要做什麽特別的設置嗎?我的怎麽縂出現這樣的錯誤:伺服器: 訊息 7399,層級 16,狀態 1,行 1
OLE DB Provider 'MICROSOFT.JET.OLEDB.4.0' 報告了錯誤。
[OLE/DB provider returned message: Microsoft Jet 資料庫引擎無法找到 'sheet1$' 物件。請確定這個物件存在,而且您沒有將物件的名稱及路徑拼錯。]
OLE DB 錯誤追蹤 [OLE/DB Provider 'MICROSOFT.JET.OLEDB.4.0' IColumnsInfo::GetColumnsInfo returned 0x80004005: ]。
wgsasd311 2006-06-14
  • 打赏
  • 举报
回复
create proc p_import
@excfilename nvarchar(100),--文件路径
@sheet nvarchar(1000) --所要导的sheet,以“;”分隔,如'Sheet1;Sheet2;Sheet3'
as
begin
set @sheet=@sheet+';'
DECLARE @excsheet nvarchar(100)
while charindex(';',@sheet)>0
begin
select @excsheet=left(@sheet,charindex(';',@sheet)-1)
EXEC('SELECT * into tab1 FROM openrowSET(''MICROSOFT.JET.OLEDB.4.0'',
''Excel 8.0;HDR=YES;DATABASE='+@excfileName+''',['+@excsheet+']) ')
set @sheet=stuff(@sheet,1,charindex(';',@sheet),'')
end
end

go

exec p_import 'c:\','Sheet1;Sheet2;Sheet3'
go

itblog 2006-06-14
  • 打赏
  • 举报
回复
create proc sp_import
@sheet nvarchar(1000)
as
begin
DECLARE @excfileName nvarchar(1000)
DECLARE @excsheet nvarchar(100)
--declare @sheet nvarchar(1000)
declare @i int
--select @sheet='Sheet1;Sheet2;Sheet3;'
select @i=charindex(';',@sheet)
while @i>0
begin
select @excsheet=left(@sheet,@i-1)
EXEC('SELECT * into tab1 FROM openrowSET(''MICROSOFT.JET.OLEDB.4.0'',''Excel 8.0;HDR=YES;DATABASE='+@excfileName+''',['+@excsheet+']) ')
select @sheet=stuff(@sheet,1,@i,'')
select @i=charindex(';',@sheet)
print @excsheet
end
end

go

exec sp_import 'Sheet1;Sheet2;Sheet3;'
go
shuzl 2006-06-14
  • 打赏
  • 举报
回复
DECLARE @excfileName nvarchar(1000)
DECLARE @excsheet nvarchar(100)
EXEC('SELECT * into tab1
FROM openrowSET(
''MICROSOFT.JET.OLEDB.4.0'',
''Excel 8.0;HDR=YES;DATABASE='+@excfileName+''',
''select * from [sheet1$]'')
')

--然后是sheet2$,sheet3$.

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧