EXCEL数据导入SQL数据库

来源:互联网 发布:小米盒子刷linux 编辑:程序博客网 时间:2024/04/20 12:27

转自:http://wenku.baidu.com/view/132530e80975f46527d3e1b0.html

 

 

实验环境:   WIN XP  MS Office Excel 2007  Sql Server 2008

准备数据:  Excel文档 :   D:\test\重复出修率.xlsx  

 

方法一:

 

第一步: 打开SSMS:

【开始】→【所有程序】→【Microsoft Sql Server 2008】→【Sql Server Management Studio

 

第二步: 连接数据库:

 对象资源管理器中点击【连接】→【数据库引擎】登陆服务器

    P.S:如果没有看到对象资源管理器’,点击左上角的【视图】→【对象管理器】)

 

第三步登陆成功后,右击你要导入数据的数据库名,我这里数据库名是’TEST’

 右击【TEST】→【任务】→【导入数据】

 

 

这时候会出现一个向导:点击【下一步】

 

              

 

 

 

在弹出的窗口中,【数据源】选择:Microsoft  Excel  ;

Excel文件路径】就选择你本地电脑存放Excel文档的路径,我这里是D:\test\重复出修率.xlsx

Excel版本】选择Excel 2007 (可以根据你office的版本,选择其他如Excel 2003等等。)

选中【首行包含列名称】框,最后点击【下一步】

首行包含列名称是指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 TEST

select COUNT(*) as有多少行数据 from aug_info

select * from aug_info

 

 

 

前面显示‘已复制336行’,现在查询到表中有336行数据。看来这个表就是刚刚从Excel中导入的数据。

OK,大功告成。

很简单吧,点点鼠标就可以了!

 

 

 

 

P.S:

前面到这里的时候,选择了上面的【复制一个或多个表或视图的数据】

那下面的【编写查询以指定要传输的数据】怎么用呢?

下面我们来试一下,重新导入Excel,到这一步选择下面按钮,然后点击【下一步】

发现这个是用来写SQL代码的。这个该怎么用呢?我也没用过,百度了下。

这个主要针对从数据库中导出条件筛选的数据.比如有一张test,我只想导出表的其中一个字段或者几个字段的数据.就可以用这个.

select   id,  name  from  test   where 条件

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

方法二:

 

--首先打开SSMS,然后点击左上角的【新建查询(N)】,在右边弹出的窗口中输入一下代码:

代码一:

 

----------------------------------------------------------------------------------------

use TEST    --- TEST’是数据库名字,你可以切换到你想要的数据库或直接输入数据库名字

----根据系统需要使用这几段批处理命令打开相应功能

EXEC sp_configure 'show advanced options', 1;

GO

RECONFIGURE;

GO

EXEC sp_configure 'Ad Hoc Distributed Queries', 1;

GO

RECONFIGURE;

GO

----以上为根据实际情况的可选命令

 

 

----开始插入数据到TEST数据库的一个新表中

select  *  into newtable_name   from

OpenDataSource('Microsoft.Ace.OLEDB.12.0','Data Source="c:\daoru.xlsx";Extended properties="Excel 12.0;HDR=Yes"')...[sheet1$]

go

 

 

P.S:

1:执行这段代码之前,你需要准备导入的数据。我用的是Excel 2007  Excel文件的名字为“daoru”,放在C盘目录下。

2 代码中的select * into newtable_name  from ...  这是把excel中的数据插入到TEST数据库中,并同时新建表名为newtable_name存放插入的数据.

3:    代码中的Office2007的数据库驱动为“Microsoft.Ace.OLEDB.12.0”,

       如果是Office2003的话应改成“Microsoft.Jet.OLEDB.4.0”,

       还有Office2007Excel的“Extended properties”中为“Excel 12.0   Office2003为“Excel 8.0

4:   代码中'Data Source="c:\daoru.xlsx"就是要导入数据的文件存放路径. (注意后缀:Excel 2007的为.xlsx;Excel  2003的为.xls)

5:   代码中的...[sheet1$] 为表名,格式为:[XXX$]或者XXX$,不需要中括号也行,而且表名不能以数字开头(其实这是几乎所有编程语言的变量命名规则),切记! 没有修改过名字的话,Excel默认是shee1,shee2,shee3....

6:   当然,你也可以使导入的数据,不用新建表.而是直接导入到数据库已有的表中,只要稍微修改代码就可以了.

 

代码二:

---------------------------------------------------------------------------------------

     insert into 已存在的表名  (字段一,字段二)     select  A,B   from

     OpenDataSource('Microsoft.Ace.OLEDB.12.0','Data Source="c:\daoru.xlsx";Extended properties="Excel 12.0;HDR=Yes"')...[sheet1$]

go

---------------------------------------------------------------------------------------

代码二中,A,B表示的意思是Excel中的A列和B,但是直接输入A,B是没有用的.

这里还要提醒一点,导入数据的时候,系统默认Excel的第一行数据是字段名.

所以,你可以把Excel的第一行的前两列数据改为AB,这样就可以了

如果Excel中的列数和数据库中的已存在的表的列数相等,也可以改成如下:

代码三:

---------------------------------------------------------------------------------------

     insert into 已存在的表名   select  *  from

     OpenDataSource('Microsoft.Ace.OLEDB.12.0','Data Source="c:\daoru.xlsx";Extended properties="Excel 12.0;HDR=Yes"')...[sheet1$]

go

---------------------------------------------------------------------------------------

 

 

0 0
原创粉丝点击