用SQL脚本读取Excel中的sheet数量及名称的方法代码
用SQL脚本读取Excel中的sheet数量及名称的方法代码
发布时间:2016-12-29 来源:查字典编辑
摘要:复制代码代码如下:--Gettable(worksheet)orcolumn(field)listingsfromanexcelspread...

复制代码 代码如下:

-- Get table (worksheet) or column (field) listings from an excel spreadsheet

-- 设置变量

declare @linkedServerName sysname = 'TempExcelSpreadsheet'

declare @excelFileUrl nvarchar(1000) = 'D:text.xlsx'

-- /SET

-- 删除链接服务(如果它已经存在)

if exists(select null from sys.servers where name = @linkedServerName) begin

exec sp_dropserver @server = @linkedServerName, @droplogins = 'droplogins'

end

-- 添加服务对象

-- ACE 12.0 可以很好地工作为*.xls 和 *.xlsx, 你也可以用 Jet ,但是只能访问*.xls文件

exec sp_addlinkedserver

@server = @linkedServerName,

@srvproduct = 'ACE 12.0',

@provider = 'Microsoft.ACE.OLEDB.12.0',

@datasrc = @excelFileUrl,

@provstr = 'Excel 12.0;HDR=Yes'

-- 获取当前用户

declare @suser_sname nvarchar(256) = suser_sname()

-- 添加当前用户作为登陆这个链接服务

exec sp_addlinkedsrvlogin

@rmtsrvname = @linkedServerName,

@useself = 'false',

@locallogin = @suser_sname,

@rmtuser = null,

@rmtpassword = null

-- 返回 sheet 和 各个 sheet中的列

exec sp_tables_ex @linkedServerName

exec sp_columns_ex @linkedServerName

--删除链接服务对象

if exists(select null from sys.servers where name = @linkedServerName) begin

exec sp_dropserver @server = @linkedServerName, @droplogins = 'droplogins'

end

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新mssql数据库学习
热门mssql数据库学习
编程开发子分类