`
xiaoer_1982
  • 浏览: 1895040 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

给冰冰鱼整理的有关SQLSERVER操作excel

阅读更多

1、查询Excel数据

SELECT *

FROM openrowset('MICROSOFT.JET.OLEDB.4.0',

'Excel 5.0;HDR=YES;DATABASE=c:\aa.xls','select * from [sheet1$]')

SELECT *

FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',

'Data Source="c:\aa.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[sheet1$]

2、查询到的数据导成一个Excel文件

ABCP

EXEC master..xp_cmdshell 'bcp 库名.dbo.表名out c:\Temp.xls -c -q -S"servername" -U"sa" -P""'

参数:S SQL服务器名;U是用户;P是密码

BPROC

/*--数据导出EXCEL

导出查询中的数据到Excel,包含字段名,文件为真正的Excel文件

,如果文件不存在,将自动创建文件

,如果表不存在,将自动创建表

基于通用性考虑,仅支持导出标准数据类型

--邹建 2003.10--

--flystone 修正当文件存在时创建失败的情况

*/

/*--调用示例

p_exporttb @sqlstr='select * from 地区资料'

,@path='c:\',@fname='aa.xls',@sheetname='地区资料'

--*/

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_exporttb]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)

drop procedure [dbo].[sp_exporttb]

GO

create proc sp_exporttb

@sqlstr varchar(8000),--查询语句,如果查询语句中使用了order by ,请加上top 100 percent,注意,如果导出表/视图,用上面的存储过程

@path nvarchar(1000),--文件存放目录

@fname nvarchar(250),--文件名

@sheetname varchar(250)=''--要创建的工作表名,默认为文件名

as

declare @err int,@src nvarchar(255),@desc nvarchar(255),@out int

declare @obj int,@constr nvarchar(1000),@sql varchar(8000),@fdlist varchar(8000)

--参数检测

if isnull(@fname,'')=''set @fname='temp.xls'

if isnull(@sheetname,'')='' set @sheetname=replace(@fname,'.','#')

--检查文件是否已经存在

if right(@path,1)<>'\' set @path=@path+'\'

create table #tb(a bit,b bit,c bit)

set @sql=@path+@fname

insert into #tb exec master..xp_fileexist @sql

--数据库创建语句

set @sql=@path+@fname

--if exists(select 1 from #tb where a=1)

-- set @constr='DRIVER={Microsoft Excel Driver (*.xls)};DSN='''';READONLY=FALSE'

-- +';CREATE_DB="'+@sql+'";DBQ='+@sql

--else

set @constr='Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties="Excel 5.0;HDR=YES'

+';DATABASE='+@sql+'"'

--连接数据库

exec @err=sp_oacreate 'adodb.connection',@obj out

if @err<>0 goto lberr

exec @err=sp_oamethod @obj,'open',null,@constr

if @err<>0 goto lberr

--创建表的SQL

declare @tbname sysname

set @tbname='##tmp_'+convert(varchar(38),newid())

set @sql='select * into ['+@tbname+'] from('+@sqlstr+') a'

exec(@sql)

select @sql='',@fdlist=''

select @fdlist=@fdlist+','+a.name

,@sql=@sql+',['+a.name+'] '

+case when b.name in('char','nchar','varchar','nvarchar') then

'text('+cast(case when a.length>255 then 255 else a.length end as varchar)+')'

when b.name in('tynyint','int','bigint','tinyint') then 'int'

when b.name in('smalldatetime','datetime') then 'datetime'

when b.name in('money','smallmoney') then 'money'

else b.name end

FROM tempdb..syscolumns a left join tempdb..systypes b on a.xtype=b.xusertype

where b.name not in('image','text','uniqueidentifier','sql_variant','ntext','varbinary','binary','timestamp')

and a.id=(select id from tempdb..sysobjects where name=@tbname)

if not exists(select 1 from #tb where a=1)

begin

select @sql='create table ['+@sheetname

+']('+substring(@sql,2,8000)+')'

,@fdlist=substring(@fdlist,2,8000)

exec @err=sp_oamethod @obj,'execute',@out out,@sql

if @err<>0 goto lberr

end

else

set @fdlist=substring(@fdlist,2,8000)

exec @err=sp_oadestroy @obj

--导入数据

set @sql='openrowset(''MICROSOFT.JET.OLEDB.4.0'',''Excel 5.0;HDR=YES

;DATABASE='+@path+@fname+''',['+@sheetname+'$])'

exec('insert into '+@sql+'('+@fdlist+') select '+@fdlist+' from ['+@tbname+']')

set @sql='drop table ['+@tbname+']'

exec(@sql)

return

lberr:

exec sp_oageterrorinfo 0,@src out,@desc out

lbexit:

select cast(@err as varbinary(4)) as 错误号

,@src as 错误源,@desc as 错误描述

select @sql,@constr,@fdlist

go

3、往Excel插入数据:

insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',

'Data Source="c:\Temp.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...table1 (A1,A2,A3) values (1,2,3)

分享到:
评论

相关推荐

    sql server 直接读取excel

    总之,SQL Server通过OLEDB提供程序可以直接读取和操作Excel文件,但这通常适用于小规模、临时性的数据处理。对于大规模或长期的数据管理,推荐将数据导入数据库或使用ETL工具进行更高效和安全的处理。

    用Excel操作SQLServer数据

    标题“用Excel操作SQLServer数据”揭示了一个独特的技术应用场景,即使用Microsoft Excel作为工具来管理和交互SQL Server数据库。这种操作方式通常涉及到Excel的VBA(Visual Basic for Applications)宏编程,使得...

    NPOI SQLServer Excel

    NPOI SQLServer Excel是一个关于使用NPOI库在.NET环境中与Excel进行数据交互,并结合SQLServer数据库进行数据导入导出的技术主题。NPOI是一个开源的.NET库,专门用于处理Microsoft Office文件,如Excel(XLS和XLSX...

    EXCEL与SQL SERVER 的导入与导出

    本主题主要探讨的是如何在Excel和SQL Server之间进行数据的导入与导出操作,以及相关的C#编程技术。 首先,Excel到SQL Server的导出通常用于将Excel中的数据批量导入到数据库中。这在数据分析、报表生成或者系统...

    Excel导入SQLserver源码_excel2sql.zip

    总结来说,"Excel导入SQLserver源码_excel2sql.zip"提供了将Excel数据批量导入到SQL Server的自动化解决方案,减少了手动操作的繁琐,提高了工作效率。通过理解和使用这样的工具,我们可以更好地管理和利用大量的...

    用Excel操作SQLServer2000数据

    用Excel操作SQLServer,比较实用。是一个Excel文件(.xls文件),启用宏后,输入几个参数就可以将该文件连接到SQLServe数据库,然后可以读取、修改、删除SQLServe数据库表中数据。

    SqlServer常用操作 SqlServer常用操作

    SqlServer常用操作SqlServer常用操作SqlServer常用操作SqlServer常用操作SqlServer常用操作SqlServer常用操作SqlServer常用操作SqlServer常用操作

    用sql server读取和写入excel文件

    用sql server读取和写入excel文件,读取和写入数据非常方便,大批量数据导入与导出非常快

    SQL Server导出表到EXCEL文件的存储过程

    - **标签解读**:这些标签有助于快速识别本文的主题,即关于SQL Server数据库环境下如何执行表数据导出操作的相关知识。 #### 存储过程解析: 首先,我们来看一下存储过程的部分代码,这将有助于我们更好地理解...

    SQLServer导入Excel方式

    ### SQL Server导入Excel数据的方法详解 #### 一、前言 在日常工作中,我们经常会遇到需要将Excel数据导入到SQL Server数据库中的情况。这不仅能够提高数据处理的效率,还能确保数据的一致性和准确性。本文将详细...

    Excel从SQLServer获取数据

    如何通过Excel来获取SQLServer数据 方便对数据库中的某些数据取数!

    用Excel操作SQLServer数据.zip

    本压缩包“用Excel操作SQLServer数据.zip”很显然是关于如何在Excel中连接并操作SQL Server数据库的教程或指南。以下将详细阐述这个主题中的关键知识点。 首先,要实现Excel与SQL Server之间的交互,你需要了解ODBC...

    Excel根据表格,批量生成sqlserver语句 ,生成建表语句,自行到数据库中执行

    标题提到的“Excel根据表格,批量生成sqlserver语句,生成建表语句,自行到数据库中执行”,就是一种利用Excel宏自动化生成SQL Server建表语句的方法。这种方法适用于已有数据结构清晰的Excel表格,通过特定的规则...

    将SQL server数据写入excel表

    在给定的项目中,"将SQL server数据写入excel表"是一个具体的实现,它利用C++ Builder 2010这一集成开发环境,将数据从SQL Server数据库导出并存储到Excel表格中。这涉及到多个技术层面,包括数据库连接、查询执行、...

    XlsToSql;Excel导入SqlServer工具

    然而,在实际操作中,我们常常需要将Excel表格中的数据导入到SqlServer数据库中,这正是XlsToSql工具发挥作用的地方。 XlsToSql是一款专门设计用于将Excel数据高效、便捷地导入到SqlServer的工具,它的出现极大地...

    SQLServer导出数据到Excel

    总结起来,从SQL Server导出数据到Excel主要涉及使用SQL Server Management Studio进行数据导出操作,通过SQL Server导入和导出数据向导配置数据源和目标,以及映射和预览数据。了解并掌握这一过程对于数据库管理员...

    Excel导入SQLserver源码

    Excel导入SQLserver源码 Excel是一种非常灵活的电子表格软件,用它可以存储各种数据,本节将对如何将Excel导入SQL Server2000数据库进行详细介绍。 开发环境:NET2.0 开发工具:vs2005 开发语言:c# 数据库:server...

    将excel导入到sql server数据库

    在提供的压缩文件"impexcel"中,可能包含了导入Excel到SQL Server的示例脚本或教程文档,建议详细阅读并按照步骤操作,以加深理解和掌握这一技能。记住,不断学习和实践是成为IT专业人士的关键。

    Web页面中sqlserver快速导入excel

    Web页面中sqlserver快速导入excel,生成csv格式 有的程序在Web页SQLSERVER导入excel的过程中,会出现下载时找不到样式的错误提示。本资源避免了以上问题,快速打开,快速导出。 c#.Net2005下运行成功。

    设置SQLServer2008(64位),SQL直接读取Excel文件数据

    设置SQLServer2008(64位),SQL直接读取Excel文件数据

Global site tag (gtag.js) - Google Analytics