sql动态读取Excel多个分页
来源:互联网 发布:linux 查看显存 编辑:程序博客网 时间:2024/06/04 06:32
sql Code
--先创建一个方法,动态读取一个文件夹下面所有的Excle文件
--sql function
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER function [dbo].[udf_getExcelTableNames] (@filename varchar (1000 ))
returns @t table (id int , name varchar (255 ))
as
begin
declare
@error int , @obj int , @c int , @sheetname varchar (255 ) , @sheetstring varchar (255 )
exec @error = sp_oacreate 'Excel.Application' , @obj out
exec @error = sp_oamethod @obj , 'Workbooks.Open' , @c out , @filename
exec @error = sp_oagetproperty @obj , 'ActiveWorkbook.Sheets.Count' , @c out
while (@c > 0 )
begin
set @sheetstring = 'ActiveWorkbook.Sheets(' + ltrim (@c )+ ').Name'
exec @error = sp_oagetproperty @obj , @sheetstring , @sheetname out
insert into @t select @c , @sheetname
set @c = @c - 1
end
exec @error = sp_oadestroy @obj
return
end
---
--并支持读取一个Excel文件有多个分页文件名
--读取多个Excel文件的数据全部保存到表#Result中
create table #Result
(
A1 varchar(10),
B1 varchar(10),
C1 varchar(10),
D1 varchar(10)
)
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
create table #t(fname varchar(260),depth int,isf bit)
insert into #t exec master..xp_dirtree 'c:/test',1,1
--注意,我用的是office2005,Excel后缀名为.xlsx
declare tb cursor for select fn='c:/test/'+fname from #t where isf=1 and fname like '%.xlsx' --取.xls文件(EXCEL)
declare @fn varchar(8000)
open tb
fetch next from tb into @fn --循环路径c:/test/文件夹下面所有的Excel文件名
while @@fetch_status=0
begin
declare @sql varchar(2000)
set @sql='insert into #Result(A1,B1,C1,D1)
select A1,B1,C1,D1 from OPENROWSET(''MICROSOFT.JET.OLEDB.4.0'',''Excel 5.0;HDR=YES;DATABASE='+@fn+''+''','
declare ta cursor for select ta=name+'$' from dbo.udf_getExcelTableNames (@fn)
open ta
declare @ta varchar(255)
fetch next from ta into @ta --循环Excel文件下面多个Excel分页
while @@fetch_status=0
begin
set @fn=@sql+@ta+')'
exec(@fn)
fetch next from ta into @ta
end
close ta
deallocate ta
fetch next from tb into @fn
end
select * from #Result
close tb
deallocate tb
drop table #t
drop table #Result
--end
c:/test/下面Excel文件格式:
A1 B1 C1 D1
A01 B01 C01 D01
A02 B02 C02 D02
A03 B03 C03 D03
- sql动态读取Excel多个分页
- 读取多个EXCEL文件
- C#读取Excel多个sheet
- C#读取Excel多个sheet
- sql读取excel文件
- SQL读取Excel
- sql读取excel
- 读取excel到sql
- Sql语句 读取Excel
- EXCEL:读取多个EXCEL文件数据到WORD文档
- sql动态分页
- Java动态生成excel表格,动态合并多个单元格
- 利用POI读取Excel数据,实现同时读取多个Excel文件,兼容所有浏览器
- SQL 读取EXCEL的数据
- SQL Server 读取Excel 2003
- 备忘读取Excel生成sql
- C#读取和导出EXCEL类库(可操作多个SHEET)
- (JXL)JAVA读取Excel数据(包含多个Sheet)
- 移动和联通接口 发送短信(C#)
- Ajax异步交互,post和get提交的区别
- oracle表连接
- 计算机考研心路历程1
- centos5 dhcp服务配置
- sql动态读取Excel多个分页
- window.navigator
- 在updatepanel中使用response时需要配置的信息
- powershell 记录
- 怎样查看执行计划
- C++库大全
- jquery 学习笔记
- Oracle Database 10g PL/SQL Programming - PL/SQL块之简单应用
- 虚拟机使用HOST-ONLY方式共享上网