Sql 导入 EXCEL 通用存储过程

简介: Sql 导入 EXCEL 通用存储过程/* --下面两句在创建存储过程时必须先执行,否则不能创建本存储过程,或者调用出错 SET ANSI_WARNINGS ON--返回警告 GO SET ANSI_NULLS ON-- 指定在对空值使用等于   (=)   和不等于   ()   比较运算符时,这些运算符的   SQL-92   遵从行为。
img_405b18b4b6584ae338e0f6ecaf736533.gif
Sql 导入 EXCEL 通用存储过程
/*
--下面两句在创建存储过程时必须先执行,否则不能创建本存储过程,或者调用出错
SET ANSI_WARNINGS ON--返回警告
GO
SET 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表的字段

AS

DECLARE @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
 
版权说明

  如果标题未标有<转载、转>等字则属于作者原创,欢迎转载,其版权归作者和博客园共有。  

  作      者:温景良

 文章出处:http://wenjl520.cnblogs.com/  或  http://www.cnblogs.com/

目录
相关文章
|
27天前
|
SQL 关系型数据库 MySQL
MySQL数据库基础第一篇(SQL通用语法与分类)
MySQL数据库基础第一篇(SQL通用语法与分类)
|
1月前
|
SQL 存储 数据库
excel导入sql数据库
将Excel数据导入SQL数据库是一个相对常见的任务,可以通过多种方法来实现。以下是一些常用的方法: ### 使用SQL Server Management Studio (SSMS) 1
|
2月前
|
存储 SQL 数据库
数据库sql语句-----游标和存储过程
数据库sql语句-----游标和存储过程
30 1
|
24天前
|
SQL 存储 XML
SQL 通用数据类型
SQL 通用数据类型
18 1
|
3天前
|
前端开发 JavaScript PHP
技术心得:前端点击按钮,导入excel文件,上传到后台,excel接收和更新数据
技术心得:前端点击按钮,导入excel文件,上传到后台,excel接收和更新数据
|
26天前
|
easyexcel Java API
SpringBoot集成EasyExcel 3.x:高效实现Excel数据的优雅导入与导出
SpringBoot集成EasyExcel 3.x:高效实现Excel数据的优雅导入与导出
110 1
|
13天前
|
JSON JavaScript 数据格式
vue 电子表格Excel的上传导入、导出下载、读取本地Excel、json转Excel
vue 电子表格Excel的上传导入、导出下载、读取本地Excel、json转Excel
17 0
|
1月前
|
存储 SQL 数据库
SQL 语言:存储过程和触发器
SQL 语言:存储过程和触发器
38 6
|
1月前
|
SQL 存储 关系型数据库
MySQL数据库——SQL(1)-SQL通用语法、SQL分类、DDL(数据库操作、表操作)
MySQL数据库——SQL(1)-SQL通用语法、SQL分类、DDL(数据库操作、表操作)
28 1
|
1月前
|
SQL 存储 数据可视化
excel表格sql数据库
Excel表格和SQL数据库是两种不同的数据管理工具,它们各自有自己的特点和用途。下面我将分别介绍它们,并探讨它们之间的关系和互操作性。 一、Excel表格 Excel是微软公司推出的一款