Excel表中数据导入到sqlserver表中

合集下载

SQLServer读取及导入Excel数据

SQLServer读取及导入Excel数据

SQLServer读取及导⼊Excel数据⼀、引⾔使⽤SQL Server的OPENROWSET及OPENDATASOURCE函数,可以像查询数据表⼀样来读取Excel数据。

但是,要想让这两个函数能正常运⾏,可不是那么容易,假如没理解或没配置好的话,⼀路的报错会让你怀疑⼈⽣。

⼆、配置2.1、组件安装要想使⽤OPENROWSET及OPENDATASOURCE函数来读取Excel数据,⾸先要在⽬标的SQL Server主机上安装AccessDatabaseEngine组件。

1)换句话说:假如要操作的数据库是在本地的,那我在本地安装AccessDatabaseEngine即可;假如要操作的数据库安装在远程的服务器上,那么需在远程的服务器上安装AccessDatabaseEngine。

2)需要说明的是,读取Excel数据,只需安装AccessDatabaseEngine,并不⼀定要安装Office。

3)依⽬标的SQL Server主机的操作系统位数,来对应安装AccessDatabaseEngine版本。

本处Excel是2013版本(.xlsx),需安装Microsoft Access Database Engine 2010 Redistributable。

2.2、服务配置在⽬标的SQL Server主机上,Win+R调出运⾏,输⼊services.msc调出服务。

将SQL Server (MSSQLSERVER)、SQL Full-text Filter Daemon Launcher (MSSQLSERVER)两个服务的登录⾝份,改为本地系统账户。

2.3、参数配置在⽬标的SQL Server上打开查询分析器,执⾏以下语句:--1、开启导⼊功能(查看参数:exec sp_configure)exec sp_configure 'show advanced options',1reconfigureexec sp_configure 'Ad Hoc Distributed Queries',1reconfigure--2、允许在进程中使⽤ACE.OLEDB.12.0exec master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1--3、允许动态参数exec master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 12.3.1、开启导⼊功能对应的系统界⾯:2.3.2、允许在进程中使⽤ACE.OLEDB.12.0及允许动态参数对应的系统界⾯:三、测试3.1、测试语句在⽬标的SQL Server上打开查询分析器,执⾏以下语句:--1、使⽤查询分析器查询EXCEL--注意1:若连接的是本机的数据库,E:\EDI\年度返利费⽤表.xlsx指的是本机的⽂件路径。

ExcelVBA导入Excel中数据到SQLServer中

ExcelVBA导入Excel中数据到SQLServer中

[方法一]如何把EXC‎EL中的数据‎导入SQL SERVER‎数据库中(2010-12-30 17:16:53)有时候需要把‎E XCEL中‎的数据导入到‎数据库中。

一条一条的在‎数据库中建数‎据显然不可取‎,如何找一条快‎捷的途径进行‎转换是很有必‎要的。

在这里主要是‎介绍一种在E‎X CEL中用‎V BA进行编‎程,把EXCEL‎的数据转换成‎S QL语句,存入到一个文‎件中,然后在数据库‎服务器上提交‎这些SQL语‎句来实现。

一、两边的数据格‎式(一)数据库的表结‎构生成数据库表‎的SQL语句‎如下:create‎table Addres‎s(ID Intege‎r identi‎t y(1,1) not null primar‎y key,Name varcha‎r(20) not null,Dept varcha‎r(50),Spell varcha‎r(20),Mobile‎ varcha‎r(11),Tel varcha‎r(20),EMail varcha‎r(30),VOIP varcha‎r(6),Remark‎ varcha‎r(200),);EXCEL中‎的数据格式(二)转换的VBA‎函数Sub Genera‎t eSQL()Dim i, k As LongDim s As String‎Open "d:\txl.sql" For Output‎As #1 '打开一个文件‎以供输入SQ‎L语句i = 2While Cells(i, 1) <> ""s = "INSERT‎INTO ADDRES‎S (Name,Dept,Mobile‎,Tel,VOIP,EMail) VALUES‎("For k = 1 To 5s = s & "'" & Cells(i, k) & "',"Nexts = s & "'" & Cells(i, 6) & "');"Print #1, s '输出一条语句‎至文件i = i + 1WendClose #1 '关闭文件End Sub以上的代码用‎于逐行把数据‎转换成SQL‎语句写入“d:\txl.sql”中。

【VIP专享】怎样把Excel文件资料导入SQL_Server2008的数据库的表中

【VIP专享】怎样把Excel文件资料导入SQL_Server2008的数据库的表中

怎样把Excel文件资料导入SQL Server2008的数据库的表中1.Excel导入SQLserver的表中前,保证Excel的表中列的顺序和数据库表的列的顺序保持一致,如果该列没有值,可以为空白。

2.打开SQL企业管理器(Microsoft SQL Server Management Studio )建议用SA身边登陆,如果Windows NT用户具有同等权限也可以3.登陆服务后,展开数据库服务器,会在最底下找到“管理”选项,单击右键,选择“导入数据(I)”选项4.单击数据导入选项后,会出现导入向导画面,直接单击“下一步”5.选择数据如下图1)在选择数据源时,请选择Microsoft Excel,因为我们的主题就是Excel导入SQL server 2)浏览要导入的Excel文件路径3)选择您要导入的Excel版本4)单击“下一步”4)数据源类型的选择列表5).Excel版本选择列表6.选择导入的目标1).选择导入的目标服务器的名称,没有显示可以手工输入的2).身份验证,建议使用windows身份验证3).选择要导入数据的数据库(Database)4).单击“下一步”7.指定表复制查询,因为本文讲述的是Excel的导入不要写SQL查询,默认选择即可,单击“下一步”8.选择源表和源视图1)本文讲述的是从Excel导入,请选择对应的源表Sheet 1$2)选择目标源,请选择您要导入的数据表的名称3)如果有需要预览源数据,请单击右下边的“预览(P)”4).数据源的预览效果,如果发现数据源与表的结构不一致时,请及时调整Excel 的格式。

9.查看数据类型映射这一步基本是系统显示目标源的数据结构和类型其次选择出错的处理方案,失败,忽略单击“下一步”10.保持并运行,是否要立刻运行。

11.完成向导,执行操作并保存数据12.执行操作的结果报告13.数据库中执行查询操作的显示结果,检查导入的数据是否正确,如有问题及时调整。

如何把EXCEL数据导入到SQLSERVER数据库中

如何把EXCEL数据导入到SQLSERVER数据库中

如何把EXCEL数据导入到SQLSERVER数据库中将Excel数据导入SQL Server数据库可以通过以下步骤实现:1. 打开Excel文件并选择要导入的数据:首先,打开Excel文件并选择要导入到SQL Server数据库的数据。

确保数据位于连续的单元格区域内,并且包含正确的列和行标题。

2. 导出Excel数据为CSV格式:将Excel数据导出为CSV(逗号分隔值)格式,这种格式是一种常见的数据交换格式,可以方便地被导入到SQL Server数据库中。

在Excel中,选择“文件”>“另存为”,然后选择CSV格式进行保存。

3. 创建目标表:在SQL Server数据库中创建一个目标表,用于存储要导入的数据。

可以使用SQL Server Management Studio或任何其他SQL编程工具来创建表。

确保表结构与将要导入的Excel数据的列和行标题相匹配。

4. 定义目标表的列:为目标表定义与Excel数据相匹配的列,保证目标表的列名与Excel数据的列名相同,并且数据类型也相匹配。

如果需要修改列的数据类型或长度,可以使用ALTER TABLE语句进行修改。

5. 使用SQL Server导入向导:使用SQL Server导入向导来导入CSV文件中的数据。

打开SQL Server Management Studio,右键单击目标数据库,选择“任务”>“导入数据”来打开导入向导。

6. 选择数据源:在导入向导的“选择数据源”步骤中,选择适当的数据源类型,这里选择“Flat File Source”,然后浏览找到之前保存的CSV文件。

7. 配置数据源:在导入向导的“配置Flat File Source”步骤中,配置CSV文件的设置。

确保分隔符设置为逗号(CSV的默认分隔符),并根据需要调整其他设置。

点击“下一步”继续。

8.选择目标数据库:在导入向导的“选择目标表或查看现有表”步骤中,选择目标数据库和表。

图解把EXCEL数据导入到SQLServer

图解把EXCEL数据导入到SQLServer

实验环境:W I N X P,M S O f f i c e E x c e l2007,S q l S e r v e r2008准备数据:Excel文档:D:\test\重复出修率.xlsx方法一:第一步:打开SSMS:开始→所有程序→MicrosoftSqlServer2008→SqlServerManagementStudio第二步:连接数据库:在’对象资源管理器’中点击连接→数据库引擎登陆服务器P.S:如果没有看到’对象资源管理器’,点击左上角的视图→对象管理器第三步:登陆成功后,右击你要导入数据的数据库名,我这里数据库名是’TEST’右击TEST→任务→导入数据这时候会出现一个向导:点击下一步在弹出的窗口中,数据源选择:MicrosoftExcel;Excel文件路径就选择你本地电脑存放Excel文档的路径,我这里是D:\test\重复出修率.xlsxExcel版本选择Excel2007可以根据你office的版本,选择其他如Excel2003等等;选中首行包含列名称框,最后点击下一步“首行包含列名称”是指Excel中的首行数据插入数据库后将作为新建表的列名.在弹出窗口中,目标可以采取默认的,服务器名称也是一样可以选择身份验证,最后选择你要插入数据到哪个数据库中;如我这里选的是’TEST’,选好后点击下一步如果就把Excel数据插入一个新表,就选择复制一个或多个表或视图的数据如果想把Excel数据插入到已存在的一张表中,则选择下面的编写查询以指定要传输的数据我这里是选择上面一个,然后点击下一步接着会弹出Excel表中的sheet表名字,如果你没有修改过sheet表名字,则可能显示的是’shee1$’,’shee2$’,’shee3$’等等.然后你选中你想要导入的哪张表的数据,我这里导入的是’aug$’选中后,右边的目标栏位中会出现内容,dbo是指数据库的架构名,aug$只是新建的表名,如果你想修改表明,双击就可以表明进入编辑状态就可以修改了;我这里修改的表名称为:aug_info修改后你也可以点击编辑映射你可以在这里修改目标,类型,是否可以为NULL,大小等建表数据;修改好后,点击确定,如果不想修改就点击取消返回上个窗口后,你也可以点击预览预览里面是Excel表中的一些数据;点击确定,然后点击下一步在弹出的页面中,就选中立即运行,至于保存SSIS包我也不是很清楚干嘛的;看样子好像是加密来着;然后点击下一步这个窗口就是一些提示信息,点击完成这个窗口是导入数据提示信息,看来我导入数据成功了;新建表名为aug_info,插入数据336行,所在数据库为TEST.点击关闭按钮就可以了;然后就是到SSMS中查看是否新生成了aug_info这张表.刷新TEST数据库或者重新登录SSMS在TEST数据库下,查看表,发现有个表名是aug_info进一步确认下,数据是否有误.点击对象资源管理器上面的新建查询,输入:use TESTselect COUNT as有多少行数据from aug_infoselectfrom aug_info前面显示‘已复制336行’,现在查询到表中有336行数据;看来这个表就是刚刚从Excel中导入的数据;OK,大功告成;很简单吧,点点鼠标就可以了P.S:前面到这里的时候,选择了上面的复制一个或多个表或视图的数据那下面的编写查询以指定要传输的数据怎么用呢下面我们来试一下,重新导入Excel,到这一步选择下面按钮,然后点击下一步发现这个是用来写SQL代码的;这个该怎么用呢我也没用过,百度了下;这个主要针对从数据库中导出条件筛选的数据.比如有一张test表,我只想导出表的其中一个字段或者几个字段的数据.就可以用这个.selectid,namefromtestwhere条件方法二:--首先打开SSMS,然后点击左上角的新建查询N,在右边弹出的窗口中输入一下代码:代码一:----------------------------------------------------------------------------------------useTEST---‘TEST’是数据库名字,你可以切换到你想要的数据库或直接输入数据库名字----根据系统需要使用这几段批处理命令打开相应功能EXECsp_configure'showadvancedoptions',1;GORECONFIGURE;GOEXECsp_configure'AdHocDistributedQueries',1;GORECONFIGURE;GO----以上为根据实际情况的可选命令----开始插入数据到TEST数据库的一个新表中selectintonewtable_namefromOpenDataSourceSource="c:\daoru.xlsx";Extendedproperties="Excel12.0;HDR=Yes"'... sheet1$goP.S:1:执行这段代码之前,你需要准备导入的数据;我用的是Excel2007,Excel文件的名字为“daoru”,放在C盘目录下;2:代码中的selectintonewtable_namefrom...这是把excel中的数据插入到TEST数据库中,并同时新建表名为newtable_name存放插入的数据.3:代码中的Office2007的数据库驱动为“”,如果是Office2003的话应改成“”,还有Office2007中Excel的“Extendedproperties”中为“Excel12.0”而Office2003为“Excel8.0”4:代码中'DataSource="c:\daoru.xlsx"就是要导入数据的文件存放路径.注意后缀:Excel2007的为.xlsx;Excel2003的为.xls5:代码中的...sheet1$为表名,格式为:XXX$或者XXX$,不需要中括号也行,而且表名不能以数字开头其实这是几乎所有编程语言的变量命名规则,切记没有修改过名字的话,Excel默认是shee1,shee2,shee3....6:当然,你也可以使导入的数据,不用新建表.而是直接导入到数据库已有的表中,只要稍微修改代码就可以了.代码二:---------------------------------------------------------------------------------------insertinto已存在的表名字段一,字段二selectA,BfromOpenDataSourceSource="c:\daoru.xlsx";Extendedproperties="Excel12.0;HDR=Yes"'... sheet1$go---------------------------------------------------------------------------------------代码二中,A,B表示的意思是Excel中的A列和B列,但是直接输入A,B是没有用的.这里还要提醒一点,导入数据的时候,系统默认Excel的第一行数据是字段名.所以,你可以把Excel的第一行的前两列数据改为A和B,这样就可以了如果Excel中的列数和数据库中的已存在的表的列数相等,也可以改成如下:代码三:---------------------------------------------------------------------------------------insertinto已存在的表名selectfromOpenDataSourceSource="c:\daoru.xlsx";Extendedproperties="Excel12.0;HDR=Yes"'... sheet1$go---------------------------------------------------------------------------------------。

如何将EXCEL中的数据直接导入 SQL SERVER 2000中的数据库

如何将EXCEL中的数据直接导入 SQL SERVER 2000中的数据库

先读取EXCEL中的数据private void btnView_Click(object sender, System.EventArgs e){dgExcelData.DataSource = null;FileDialog dlgOpen = new OpenFileDialog();dlgOpen.Filter="Excel Files (*.xls)|*.xls";if(dlgOpen.ShowDialog() == DialogResult.OK){txtPath.Text=dlgOpen.FileName;string strCon = "Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = "+txtPath.Text.Trim()+";Extended Properties=Excel 8.0" ; OleDbConnection myConn = new OleDbConnection();try{this.Cursor = Cursors.WaitCursor;//创建一个数据Excel连接****************************************************************** myConn = new OleDbConnection ( strCon ) ;string strCom = " SELECT * FROM [Sheet1$]" ;myConn.Open ();//打开连接得到数据集合oDS.Clear();OleDbDataAdapter myCommand = new OleDbDataAdapter( strCom , myConn ) ;myCommand.Fill ( oDS , "[Sheet1$]" ) ;//关闭连接myConn.Close ( ) ;if (!oDS.Tables[0].Columns.Contains("Insert Result"))oDS.Tables[0].Columns.Add("Insert Result");dgExcelData.SetDataBinding(oDS,"[Sheet1$]");btnOk.Enabled = true;this.Cursor = Cursors.Arrow;inifrom();}catch(Exception err1){MessageBox.Show(err1.Message);myConn.Close();this.Cursor = Cursors.Arrow;}}//END}sql中右键所有任务导入数据选择EXCEL版本即可下面是导出真正Excel文件的方法:if exists (select * from dbo.sysobjects where id = object_id(N '[dbo].[p_exporttb] ') and OBJECTPROPERTY(id, N'IsProcedure ') = 1)drop procedure [dbo].[p_exporttb]GO/*--数据导出EXCEL导出表中的数据到Excel,包含字段名,文件为真正的Excel文件,如果文件不存在,将自动创建文件,如果表不存在,将自动创建表基于通用性考虑,仅支持导出标准数据类型--邹建 2003.10(请保留此信息)--*//*--调用示例p_exporttb @tbname= '地区资料 ',@path= 'c:\ ',@fname= 'aa.xls ' --*/create proc p_exporttb@tbname sysname, --要导出的表名@path nvarchar(1000), --文件存放目录@fname nvarchar(250)= ' ' --文件名,默认为表名asdeclare @err int,@src nvarchar(255),@desc nvarchar(255),@out intdeclare @obj int,@constr nvarchar(1000),@sql varchar(8000),@f dlist varchar(8000)--参数检测if isnull(@fname, ' ')= ' ' set @fname=@tbname+ '.xls '--检查文件是否已经存在if right(@path,1) <> '\ ' set @path=@path+ '\ 'create table #tb(a bit,b bit,c bit)set @sql=@path+@fnameinsert into #tb exec master..xp_fileexist @sql--数据库创建语句set @sql=@path+@fnameif exists(select 1 from #tb where a=1)set @constr= 'DRIVER={Microsoft Excel Driver (*.xls)};DSN= ' ' ' ';READONLY=FALSE '+ ';CREATE_DB= " '+@sql+ ' ";DBQ= '+@sqlelseset @constr='Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties="Excel 8.0;HDR=YES '+ ';DATABASE= '+@sql+ ' " '--连接数据库exec @err=sp_oacreate 'adodb.connection ',@obj outif @err <> 0 goto lberrexec @err=sp_oamethod @obj, 'open ',null,@constrif @err <> 0 goto lberr/*--如果覆盖已经存在的表,就加上下面的语句--创建之前先删除表/如果存在的话select @sql= 'drop table [ '+@tbname+ '] 'exec @err=sp_oamethod @obj, 'execute ',@out out,@sql--*/--创建表的SQLselect @sql= ' ',@fdlist= ' 'select @fdlist=@fdlist+ ',[ '++ '] ',@sql=@sql+ ',[ '++ '] '+casewhen like '%char 'then case when a.length> 255 then 'memo 'else 'text( '+cast(a.length as varchar)+ ') ' endwhen like '%int ' or = 'bit' then 'int 'when like '%datetime ' then 'datetime 'when like '%money ' then 'money 'when like '%text ' then 'memo 'else endFROM syscolumns a left join systypes b on a.xtype=b.x usertypewhere not in( 'image ', 'uniqueidentifier ', 'sql_variant ', 'varbinary ', 'binary ', 'timestamp ')and object_id(@tbname)=idselect @sql= 'create table [ '+@tbname+ ']( '+substring(@sql,2,8000)+ ') ',@fdlist=substring(@fdlist,2,8000)exec @err=sp_oamethod @obj, 'execute ',@out out,@sqlif @err <> 0 goto lberrexec @err=sp_oadestroy @obj--导入数据set @sql= 'openrowset( ' 'MICROSOFT.JET.OLEDB.4.0 ' ', ''Excel 8.0;HDR=YES;IMEX=1;DATABASE= '+@path+@fname+ ' ' ',[ '+@tbname+ '$]) 'exec( 'insert into '+@sql+ '( '+@fdlist+ ') select '+@fdlist+ ' from '+@tbname)returnlberr:exec sp_oageterrorinfo 0,@src out,@desc outlbexit:select cast(@err as varbinary(4)) as 错误号,@src as 错误源,@desc as 错误描述select @sql,@constr,@fdlistgoif exists (select * from dbo.sysobjects where id = object_id(N '[dbo].[p_exporttb] ') and OBJECTPROPERTY(id, N'IsProcedure ') = 1)drop procedure [dbo].[p_exporttb]GO/*--数据导出EXCEL导出查询中的数据到Excel,包含字段名,文件为真正的Excel文件如果文件不存在,将自动创建文件如果表不存在,将自动创建表基于通用性考虑,仅支持导出标准数据类型--邹建 2003.10(请保留此信息)--*//*--调用示例p_exporttb @sqlstr= 'select * from 地区资料 ',@path= 'c:\ ',@fname= 'aa.xls ',@sheetname= '地区资料 '--*/create proc p_exporttb@sqlstr varchar(8000), --查询语句,如果查询语句中使用了order by ,请加上top 100 percent@path nvarchar(1000), --文件存放目录@fname nvarchar(250), --文件名@sheetname varchar(250)= ' ' --要创建的工作表名,默认为文件名asdeclare @err int,@src nvarchar(255),@desc nvarchar(255),@out intdeclare @obj int,@constr nvarchar(1000),@sql varchar(8000),@f dlist 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+@fnameinsert into #tb exec master..xp_fileexist @sql--数据库创建语句set @sql=@path+@fnameif exists(select 1 from #tb where a=1)set @constr= 'DRIVER={Microsoft Excel Driver (*.xls)};DSN= ' ' ' ';READONLY=FALSE '+ ';CREATE_DB= " '+@sql+ ' ";DBQ= '+@sqlelseset @constr='Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties="Excel 8.0;HDR=YES '+ ';DATABASE= '+@sql+ ' " '--连接数据库exec @err=sp_oacreate 'adodb.connection ',@obj outif @err <> 0 goto lberrexec @err=sp_oamethod @obj, 'open ',null,@constrif @err <> 0 goto lberr--创建表的SQLdeclare @tbname sysnameset @tbname= '##tmp_ '+convert(varchar(38),newid())set @sql= 'select * into [ '+@tbname+ '] from( '+@sqlstr+ ') a 'exec(@sql)select @sql= ' ',@fdlist= ' 'select @fdlist=@fdlist+ ',[ '++ '] ',@sql=@sql+ ',[ '++ '] '+casewhen like '%char 'then case when a.length> 255 then 'memo 'else 'text( '+cast(a.length as varchar)+ ') ' endwhen like '%int ' or = 'bit' then 'int 'when like '%datetime ' then 'datetime 'when like '%money ' then 'money 'when like '%text ' then 'memo 'else endFROM tempdb..syscolumns a left join tempdb..systypes b on a.xtype=b.xusertypewhere not in( 'image ', 'uniqueidentifier ', 'sql_variant ', 'varbinary ', 'binary ', 'timestamp ')and a.id=(select id from tempdb..sysobjects where name=@ tbname)if @@rowcount=0 returnselect @sql= 'create table [ '+@sheetname+ ']( '+substring(@sql,2,8000)+ ') ',@fdlist=substring(@fdlist,2,8000)exec @err=sp_oamethod @obj, 'execute ',@out out,@sqlif @err <> 0 goto lberrexec @err=sp_oadestroy @obj--导入数据set @sql= 'openrowset( ' 'MICROSOFT.JET.OLEDB.4.0 ' ', ''Excel 8.0;HDR=YES;DATABASE= '+@path+@fname+ ' ' ',[ '+@sheetname+ '$]) 'exec( 'insert into '+@sql+ '( '+@fdlist+ ') select '+@fdlist+ ' from [ '+@tbname+ '] ')set @sql= 'drop table [ '+@tbname+ '] 'exec(@sql)returnlberr:exec sp_oageterrorinfo 0,@src out,@desc outlbexit:select cast(@err as varbinary(4)) as 错误号,@src as 错误源,@desc as 错误描述select @sql,@constr,@fdlistgo。

子任务4.1EXCEL数据导入到SQL Server数据库

子任务4.1EXCEL数据导入到SQL Server数据库
表或文件的权限。 5. 保存向导创建的包,需要具有向 msdb 数据库或文件系统进行写入
操作的权限。
2 将数据导入到SQL Server数据库
• 需求说明
将一张记录管理员信息的EXCEL表格——管理员表,导入到 StudentDB数据库的Admin表中。
谢 谢!
刘万辉
使用数据转换服务(DTS)对数据进行处理 使用T-SQL语句对数据进行处理 调用命令行工具对数据进行处理
1 导入导出的基本知识
需要具备的权限
1. 连接到源数据库和目标数据库或文件共享的权限。 2. 从源数据库或文件中读取数据的权限。 3. 向目标数据库或文件写入数据的权限。 4. 创建新的目标数据库、数据表或文件,需要具有创建数据库、数据
《SQL Server数据库技术》 课程
EXCEL数据导入到SQL Server数据库
讲授人:吴伶琳
目录页
PAGE OF CONTENT
01 导入导出基本知识 02 将数据导入到SQL Server数据库
1 导入导出的基本知识
可数 据库与Access以及数据库与Excel等之间的转换。

[SQL]将Excel表数据导入SQL Server2005的几种方法归纳

[SQL]将Excel表数据导入SQL Server2005的几种方法归纳

[SQL]将Excel表数据导入SQL Server2005的几种方法归纳近日在巨轮着手车间负荷数据处理,反馈回来的数据是保存在Excel文件中的,我必须将其导入SQL Server2005中,供存储过程计算。

由于之前没有将Excel数据导入SQL Server2005的经验,因此摸索着花了一天时间才搞定。

下面将网上收集到的几种导入方法做个归纳。

方法一、利用SQL Server2005自带的DTS工具,手工导入:第一步是点击开始并选择运行并输入CMD然后在命令提示符里输入DTSWIZARD。

SQL Server 导入和导出向导的欢迎界面将显示出来,如下图所示:(也可以这样打开该界面:1、登录到 SQL Server Management Studio。

2、在“对象资源管理器”中右键单击“管理”,在弹出列表中单击“导入数据”。

)当你点击下一步按钮时,它将进入选择数据源向导界面。

用户应该选择数据源为Microsoft Office 12.0 Access Database Engine OLE DB Provider 然后在向导界面中点击属性…按钮,它将弹出数据链接属性界面。

在所有标签页中,双击数据源属性值并输入电子数据表的位置,例如“C:\Excel2007\Import\SampleData.xlsx”作为导入数据的数据源的Microsoft Office Excel 2007文件名称和路径。

然后双击扩展属性并选择Excel 12.0作为属性值。

到Microsoft Office Excel 2007的连接可以通过点击测试连接按钮来进行测试,如下图所示:在下一个页面中,数据源需要选为SQL Native Client,因为数据将导入到SQL Server 2005。

然后你需要选择数据所要导入的服务器名称,并需要配置合适的验证模式,它之后跟着数据库名称。

在这个例子中,我们将使用windows验证连接到本地SQL Server实例,所使用的数据库将是ImportExcel。

如何将数据从 Excel 导入到 SQL Server

如何将数据从 Excel 导入到 SQL Server

本文循序渐进地演示如何用不同的方法将数据从Microsoft Excel 工作表导入到Microsoft SQL Server 数据库。

回到顶端技术说明本文中的示例使用以下工具导入Excel 数据:∙SQL Server 数据传输服务(DTS)∙Microsoft SQL Server 2005 Integration Services (SSIS)∙SQL Server 链接服务器∙SQL Server 分布式查询∙ActiveX 数据对象(ADO) 和Microsoft OLE DB Provider for SQL Server∙ADO 和Microsoft OLE DB Provider for Jet 4.0回到顶端要求下面的列表列出了推荐使用的硬件、软件、网络架构以及所需的Service Pack:∙Microsoft SQL Server 7.0、Microsoft SQL Server 2000 或Microsoft SQL Server 2005 的可用实例∙Microsoft Visual Basic 6.0(针对使用Visual Basic 的ADO 示例)本文的部分内容假定您熟悉下列主题:∙数据传输服务∙链接服务器和分布式查询∙Visual Basic 中的ADO 开发回到顶端示例导入与追加本文使用的示例SQL 语句演示了“创建表”查询。

该查询通过使用SELECT...INTO...FROM 语法将Excel 数据导入新的SQL Server 表。

如这些代码示例所示,在继续引用源对象和目标对象时,可以通过使用INSERT INTO...SELECT...FROM 语法将这些语句转换成追加查询。

使用DTS 或SSIS可以使用“SQL Server Data Transformation Services (DTS) 导入向导”或“SQL Server 导入和导出向导”将Excel 数据导入到SQL Server 表中。

Excel与SQLServer数据交互

Excel与SQLServer数据交互

Excel与SQLServer数据交互第⼀部分:在Excel导⼊SQL Server中的数据:1. 在“数据”选项卡上的“获取外部数据”组中,单击“⾃其他来源”,然后单击“来⾃SQL Server”。

2. 在“服务器名称”框中,键⼊要连接的 SQL Server 计算机的名称。

3. 在“登录凭据”下,执⾏下列操作之⼀:3.1. 要使⽤当前的 Microsoft Windows⽤户名和密码,请单击“使⽤Windows ⾝份验证”。

2. 要输⼊数据库⽤户名和密码,请单击“使⽤下列⽤户名和密码”,然后在相应的“⽤户名”和“密码”框中键⼊您的⽤户名和密码。

3. 在“选择数据库”下,选择⼀个数据库。

在“连接到指定表”下,选择⼀个特定的表或视图。

或者,也可以清除“连接到指定表”复选框,以便系统向使⽤此连接⽂件的其他⽤户提⽰表和视图的列表。

4. (可选)在“⽂件名”框中,修改建议的⽂件名。

单击“浏览”以更改默认⽂件位置(“我的数据源”)。

5. (可选)分别在“说明”、“友好名称”和“搜索关键字”框中键⼊对⽂件的说明、友好名称及常⽤搜索⽂字。

6. 要确保更新数据时始终使⽤该连接⽂件,请单击“始终尝试使⽤此⽂件来刷新此数据”复选框。

此选项可确保使⽤该连接⽂件的所有⼯作簿始终会使⽤对该连接⽂件的更新。

7. 若要指定在将⼯作簿发布到 Sharepoint Foundation 2010⽹站并在 Web浏览器中打开它时如何访问数据透视表的外部数据源,请单击“验证设置”,然后选择以下选项之⼀以登录到相应的数据源:8.9. 单击“确定”,然后单击“完成”以关闭“数据连接向导”。

10. 将显⽰“导⼊数据”对话框。

11. 在“请选择该数据在⼯作簿中的显⽰⽅式”下,执⾏下列操作之⼀:12.Windows⾝份验证选择此选项可使⽤当前⽤户的 Windows⽤户名和密码。

这是最安全的⽅法,但在许多⽤户连接到服务器的情况下,此⽅法会影响性能。

将Excel文件数据导入到SqlServer数据库的三种方案

将Excel文件数据导入到SqlServer数据库的三种方案

将Excel⽂件数据导⼊到SqlServer数据库的三种⽅案最近在⼀个项⽬中需要⽤到Excel⽂件导⼊数据库的功能,本⼈很懒,所以到⽹上搜了⼀堆⽅法,但是通过对⽐,觉得⼀下三种是⽐较好⽤或者不是很常见的⽅法,希望对⼤家有所帮助。

⽅案⼀:通过OleDB⽅式获取Excel⽂件的数据,然后通过DataSet中转到SQL Server,这种⽅法的优点是⾮常的灵活,可以对Excel表中的各个单元格进⾏⽤户所需的操作。

1. openFileDialog = new OpenFileDialog();2. openFileDialog.Filter = "Excel files(*.xls)|*.xls";3.4. if(openFileDialog.ShowDialog()==DialogResult.OK)5. {6. FileInfo fileInfo = new FileInfo(openFileDialog.FileName);7. string filePath = fileInfo.FullName;8. string connExcel = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties=Excel 8.0";9.10. try11. {12. OleDbConnection oleDbConnection = new OleDbConnection(connExcel);13. oleDbConnection.Open();14.15. //获取excel表16. DataTable dataTable = oleDbConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);17.18. //获取sheet名,其中[0][1]...[N]: 按名称排列的表单元素19. string tableName = dataTable.Rows[0][2].ToString().Trim();20. tableName = "[" + tableName.Replace("'","") + "]";21.22. //利⽤SQL语句从Excel⽂件⾥获取数据23. //string query = "SELECT classDate,classPlace,classTeacher,classTitle,classID FROM " + tableName;24. string query = "SELECT ⽇期,开课城市,讲师,课程名称,持续时间 FROM " + tableName;25. dataSet = new DataSet();26.27. //OleDbCommand oleCommand = new OleDbCommand(query, oleDbConnection);28. //OleDbDataAdapter oleAdapter = new OleDbDataAdapter(oleCommand);29. OleDbDataAdapter oleAdapter = new OleDbDataAdapter(query,connExcel);30. oleAdapter.Fill(dataSet,"gch_Class_Info");31. //从excel⽂件获得数据后,插⼊记录到SQL Server的数据表32. DataTable dataTable1 = new DataTable();33.34. SqlDataAdapter sqlDA1 = new SqlDataAdapter(@"SELECT classID, classDate,35. classPlace, classTeacher, classTitle, durativeDate FROM gch_Class_Info",sqlConnection1);36.37. //SqlCommandBuilder sqlCB1 = new SqlCommandBuilder(sqlDA1);38.39. sqlDA1.Fill(dataTable1);40.41. foreach(DataRow dataRow in dataSet.Tables["gch_Class_Info"].Rows)42. {43. DataRow dataRow1 = dataTable1.NewRow();44.45. dataRow1["classDate"] = dataRow["⽇期"];46. dataRow1["classPlace"] = dataRow["开课城市"];47. dataRow1["classTeacher"] = dataRow["讲师"];48. dataRow1["classTitle"] = dataRow["课程名称"];49. dataRow1["durativeDate"] = dataRow["持续时间"];50.51. dataTable1.Rows.Add(dataRow1);52. }53.54. Console.WriteLine("新插⼊ " + dataTable1.Rows.Count.ToString() + " 条记录");55. sqlDA1.Update(dataTable1);56.57. oleDbConnection.Close();58.59. }60. catch(Exception ex)61. {62. Console.WriteLine(ex.ToString());63. }64. }⽅案⼆:直接通过SQL语句执⾏SQL Server的功能函数将Excel⽂件转换到SQL Server数据库。

excel导入sql server 2005

excel导入sql server 2005

Excel 文件导入数据
我们有很多内容为了方便使用,都是写在excel 文件当中。

但是,在后期处理时,需要在数据库中加工数据。

那么,就必须将数据从excel中导入到数据库中。

我们现在讨论如何将excel 2003 文件导入sql server 2005。

Sql server 2005,需要安装sp4 补丁才能完成这个导入的工作。

Sp4 补丁可以通过网络下载,在搜索引擎中输入,会有很多资源。

安装好补丁之后,开始正式导入。

1.选择导入数据。

2.出现欢迎界面,选择下一步。

3.选择excel文件。

4.选择目标
5.复制策略,选择默认的,直接下一步。

6.选择要导入的数据表。

导入之后的数据库表的名字和使用编辑映射来修改列的属性。

7.选择默认的立即执行。

8.完成向导,点击完成。

Excel表格里的数据导入SQLSERVER数据库

Excel表格里的数据导入SQLSERVER数据库

使用第三方工具
总结词
除了SQL Server自带的功能外,还有许多第三方工具可以帮助用户将Excel数据导入SQL Server。
详细描述
这些第三方工具通常提供了更多的功能和灵活性,例如支持更多的文件格式、自动映射列、数据清洗和转换等。 用户可以根据自己的需求选择合适的工具,如DataGrip、Tableau、Power BI等。
逻辑检查
检查数据是否符合业务逻 辑,如年龄字段是否合理。
参照完整性
检查外键引用是否有效, 关联的数据是否一致。
数据性能优化
索引优化
根据查询需求,为常用查询字段 建立合适的索引。
查询优化
优化导入后的查询语句,提高查询 效率。
数据分区
根据数据的特点和使用频率,对表 进行分区管理。
THANKS
感谢观看
02
Excel数据导入SQL Server的方法
使用SQL Server Integration Services (SSIS)
总结词
SSIS是SQL Server提供的一个强大的ETL工具,可以用来导入、导出和转换数据 。
详细描述
通过SSIS,用户可以创建一个数据流任务,将Excel文件作为源数据,然后将其导入 到SQL Server数据库中。在SSIS中,用户可以定义数据清洗、转换和加载的规则, 确保数据准确无误地导入到目标表中。
通过导入Excel数据到SQL Server, 可以自动化地完成数据清洗、转换 和加载等任务,减少手动操作的时 间和人力成本。
批量处理
导入大量数据时,使用SQL Server的批量导入功能可以显著 提高数据处理的效率,减少等待 时间。
保证数据一致性
数据格式统一

SQLServer与excel数据交互

SQLServer与excel数据交互

SQLServer与excel数据交互
1、SQL Server导出为Excel:
要⽤T-SQL语句直接导出⾄Excel⼯作薄,就不得不⽤借⽤SQL Server管理器的⼀个扩展存储过程:xp_cmdshell,此过程的作⽤为“以
实际例⼦与说明如下:
2、Excel导⼊SQL Server表:
在SQL Server中,有定义⼀个OpenDateSource函数,⽤于引⽤那些不经常访问的 OLE DB 数据源,⽽我们的数据互导操作,就是建⽴在这个函数之上。

⾸先看⼀个T-SQL帮助中的⽰例,描述如下:
实际例⼦与说明如下:
2、Excel导⼊SQL Server表:
在SQL Server中,有定义⼀个OpenDateSource函数,⽤于引⽤那些不经常访问的 OLE DB 数据源,⽽我们的数据互导操作,就是建⽴在这个函数之上。

⾸先看⼀个T-SQL帮助中的⽰例,描述如下:
如果你直接引⽤这个⽰例进⾏查询,那么肯定是通不过的。

关键在于语句中的两个地⽅需要修改,⼀处在于Data Source处,双引号内为Excel表格的实际存放位置,要修改为你想查询的Excel表实际完整路径;⼆为最后的...xactions,其实这⾥代表的是要进⾏的某些动作,下⾯会讲,这⾥修改成⽤中括号包围的Excel表中⼯作表名字(加上⼀个$)就可以了,如[Sheet1$]。

当然,还可以将Excel 5.0改为Excel 8.0,因为5.0是以前的⽼版本了。

下⾯是实例说明:。

sqlserver导入excel等数据

sqlserver导入excel等数据

sqlserver导⼊excel等数据
1.⾸先打开并登陆sql server数据库
2.选择要将表导⼊的数据库,右击选择任务-->导⼊数据
3.在弹出的窗⼝中选择下⼀步
4.在弹出的窗⼝中选择数据源,也就是从哪种⽂件导⼊,sql server⽀持多种格式的导⼊,这⾥选择excel,并点击下⾯的浏览,找到要导⼊的excel⽂件,并点击下⼀步
5.在跳出的窗⼝中选择数据源,服务器名称(默认填好,不⽤动),⾝份验证⽅式可以选择window验证或者账号验证都可以,同时下⾯的数据库此时还可以选择更改
6.选择第⼀个:复制⼀个或多个表或视图的数据,点击下⼀步
7.重要⼀步:选择要导⼊的表,默认新建表Sheet1$,也可以⾃⼰选择已有的表,但注意的是表的数据类型要⼀直才能导⼊已存在的表中,下⾯可以点击预览查看将要导⼊的数据
8.最后点击下⼀步(默认⽴即运⾏),然后点击完成就导⼊了。

这⾥是选择新建表就可以看到导⼊的excel数据了。

把excel表格里的数据导入sql数据库的两种方法 电脑资料

把excel表格里的数据导入sql数据库的两种方法 电脑资料

把excel表格里的数据导入sql数据库的两种方法电脑资料本来最近在研究微信公众平台的,老大临时交我个任务,把excel 表格里的数据导入sql数据库,我想这so easy嘛,把情况介绍下:在数据库中有如下这样结构的表(A表)我只取关键的及列里面还有很多数据。

有一张id和name对照的excel文件(B表)和N张结构类似的excel表(C表)(没有id那一列)我的任务在B表中找到C表中数据对应的id后,然后将id加到C 表中,最后根据id是唯一的,用C表的数据去更新A表的数据。

这里主要涉及了excel表格和数据库表间的转化。

是MySQL for Excel 是excel直接操作mysql数据库的一个插件,你可以像修改excel表格一样修改数据库,当然也可以进行表的合并等。

插件的安装,大家百度吧。

在使用这个的时候遇到了个问题,MySQL for Excel 能连接到本地的数据库,但在效劳器上的数据库总是连接不上。

方案一破产这里要注意两点一是excel表格中的手机号码要设置为文本格式 ,二是统一用繁体字。

出现空格乱码时,删除空格重写输入。

EXCEL数据上传到SQL SERVER中的简单实现方法Asp.中把Excel数据存储至SQL Server中的具体实现方法如何把Excel数据导入到SQLxx数据库的实例方法ASP将Excel数据导入到SQLServer的实现代码Excel导入Sqlserver数据库脚本Excel数据导入Mysql数据库的实现代码QQ空间搜狐微博人人网开心网百度搜藏更多复制链接收藏本文打印本文关闭本文返回首页上一篇:查询存储过程中特定字符的方法下一篇:SQL SERVER 2000通讯管道后复用劫持xx-01-01使用mongovue把sqlserver数据导入mongodb的步骤xx-06-06sqlserver 修改列名及表名的sql语句xx-11-11Sql function 多行中的列合并为一行一列的方法xx-04-04SQL Server的根本功能性语句介绍xx-03-03SQL高级应用之使用SQL查询Excel表格数据的方法xx-01-01配置 SQL Server xx 以允许远程连接的方法xx-11-11drop,truncate与delete的区别xx-08-08如何控制SQLServer中的跟踪标记xx-06-06SQLServer中临时表与表变量的区别分析数据连接池剖析解决SQL Server虚拟内存缺乏情况SQL2000 全文索引完全图解没有sa密码无法集成windows身份验证的小议sqlserver数据库主键选取策略使用BULK INSERT大批量导入数据 SQLSERVE获取MSSQL 表结构中字段的备注、主键等信Sql Server中一个表2个字段关联同一个表(Sql学习第四天——SQL 关于with cube,wit为数据库生成某个字段充填随机数的存储过sql server的一个有趣的bit位运算分享SQL Server xx图文安装教程SQL Server xx 安装图解教程(附sqlserver中distinct的用法(不重SQL Server导入、导出、备份数据SQL语句去掉重复记录,获取重复记SQL Server数据库入门学习SQL Server错误代码大全及解释(sql convert函数使用小结sql 时间函数的比拟全了用SQL语句添加删除修改字段、一些。

Execl(2003)数据导入SQLServer(2005)

Execl(2003)数据导入SQLServer(2005)

Execl(2003)数据导⼊SQLServer(2005)最近在做这个问题的时候,发现⽹上很多资料不是很全,⽽且有些是有错的,现在我把问题解决了,特把相应的⽅法贴出来。

在执⾏插⼊语句前,需要做下⾯⼏步操作:1、从开始菜单进⼊到配置⼯具 > sql server 2005 外围应⽤配置器 > 服务和连接的外围配置器 > Datebase Engine > 服务,然后重启sqlserver服务。

(在数据库⾮正常关闭之后,可能会出现,“没法初始化数据源的错误”,此时重启⼀下sqlserver服务就可以了)2、然后运⾏ regedit 进⼊注册表编辑器 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQLServer\MSSQL.1\Providers\Microsoft.Jet.OLEDB.4.0 新建DWORD (64位值)名为DisallowAdhocAccess 值为0.3、注意: 3.1、把需要导⼊的Execl⽂件关闭; 3.2、配置⼯具 > SQL Server 外围配置管理器 > 功能的外围应⽤配置器 > Database Engine > 即席远程查询 > 启⽤OPENROWSET 和 OPENDATASOURCE ⽀持 (勾选上)3、在执⾏插⼊语句前,必须先打开这个组件服务: exec sp_configure 'show advanced options',1 reconfigure exec sp_configure 'Ad Hoc Distributed Queries',1 reconfigure 注意:在每次⽤完之后,记得把它关闭。

exec sp_configure 'Ad Hoc Distributed Queries',0 reconfigure exec sp_configure 'show advanced options',0 reconfigure4、插⼊语句:/*新建表y,同时插⼊数据*/select * into y from OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="G:\1.xls";Extended properties= "Excel8.0;HDR=YES;IMEX=1"')...[Sheet1$]/*新建表y,同时插⼊数据*//*插⼊到已有的表x中*/insert into x select * from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 8.0;HDR=YES;DATABASE=G:\1.xls',Sheet1$);/*插⼊到已有的表x中*/<补充>参数HDR的值:HDR=Yes,这代表第⼀⾏是标题,不做为数据使⽤,如果⽤HDR=NO,则表⽰第⼀⾏不是标题,做为数据来使⽤。

C#从Excel读取数据向SQLserver写入

C#从Excel读取数据向SQLserver写入

C#从Excel读取数据向SQLserver写⼊第⼀次写C#与sql的东西,主要任务是从Excel读取数据,再存到SQL server中。

先上读取Excel⽂件的code如下。

public bool GetFiles(string equipName){//choose all sheet? or all data in sheet?string strExcel = "select * from [Sheet1$]";//初始化system.IO的配置(路径)DirectoryInfo directoryInfo1 = new DirectoryInfo(WPath + equipName + "\\Working");//⽤⽂件流来获取⽂件夹中所有⽂件,存放到FileInfo[] files1 = directoryInfo1.GetFiles();foreach (FileInfo file in files1) // Directory.GetFiles(srcFolder){// 连接到excel 数据源, xlsx要⽤ACEstring strConn = ("Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source= " + file.FullName + "; Extended Properties='Excel 12.0';");OleDbConnection OledbConn = new OleDbConnection(strConn);if (IsUsed(file.FullName)){flag = IsUsed(file.FullName);continue;}try{OledbConn.Open();// 存⼊datatableOleDbDataAdapter dAdapter = new OleDbDataAdapter(strExcel, strConn); //写⼊ds中的⼀个tabledAdapter.Fill(ds);OledbConn.Dispose();OledbConn.Close();}catch (Exception ex){}}}foreach⽤于遍历所有Excel⽂件;strExcel⽤于选择Excel⽂件中sheet的内容,select * 表⽰选取sheet中所有⾏和列;strConn⽤于设置读取的⽅法,provider的设置很重要,ACE表⽰最新的.xlsx⽂件,jet 表⽰读取.xls⽂件,两者有点区别,DataSource表⽰⽂件名,包括路径。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档