如何将excel数据导入数据库

如何将excel数据导入数据库,第1张

1:导入的语句怎么写?

insert into table

select

from OpenRowSet('microsoftjetoledb40','Excel 80;HDR=yes;database=c:\1xls;','select from [table$]')

这是全字段导入,如果你想导入部分字段则把 改成你要导入的字段

2对excel中的数据有什么要求?

例如:能否有空格?

同一列的数据能否有重复的?

excel没什么特别的要求,类似能否有重复,空格之类的则是看你的想导入的那个数据库的设计了

3数据库如何设计?

例如:数据库中的字段类型以及名称是否应该和excel中的保持一致?

默认的是怎样导入呢?是不是表中的第一列默认导入到数据库中的第一个字段里?

如果你是用select 方式导入的话 可以不用名称对应,如果是 select 字段的则最好是对应,对类型没特殊要求,默认第一列为第一个字段

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

建议:SQL server是有导入导出工具的,你直接用那个比较好

1)打开你的sql server,找到要导入数据的数据库,右键——〉任务——〉导入数据

2)按照图示选择要导入的excel

3)选择导入到哪个数据库

4)导入excel选择第一项即可,选择第二项是表与表直接内容的筛选复制

5)选择源表和源视图

6)编辑映射页面

7)继续下一步,点击完成,看到传输数据完成页面

8)进入数据库刷新,查看刚刚导入的表,完成!

第一步:在ghost xp系统中启动Access,在向导的提示下建立一个“空数据库”以便用于存放从Excel中导入的数据

第二步:打开要导入数据的数据库,切换到“外部数据”选项卡,选择“Excel”按钮,打开“导入数据”对话框。

第三步:在“选择数据源”对话框中,可以根据需要选择数据源,数据源就是我们之前准备好的“成绩表xlsx”表格文件。同时选择“将数据源导入当前数据库的新表中”。

第三步:在“选择数据源”对话框中,可以根据需要选择数据源,数据源就是我们之前准备好的“成绩表xlsx”表格文件。同时选择“将数据源导入当前数据库的新表中”。

第五步:勾选“第一行含有列标题”选项,以免导入向导将表格第一排的标题也当做数据导入进来。点击“下一步”按钮

第六步:分别选择每一个数据列,并指定导入数据库后的数据类型。中文部分建议设置为“文本”,数字部分可以设置为“整数型”或“双精度型”。然后点击“下一步”按钮

第七步:接下来为数据表设置主键。主键是数据库中一种特殊的列,列的内容是一组自动增长的数字,如果没有实际的需要,我们选择“不要主键”并点击“下一步”按钮。

第八步:为即将生成的新标取一个名字。例如“学生成绩数据”,并点击“完成”按钮,结束导入。

方法如下:

1、打开要导入的Excel文件,观察第一列是为字段还是数据。

2、打开SQLServer,在需要导入的数据点击右键 任务-导入数据

出现导入导出向导。

3、点击下一步 ,进入选择数据源页面,注意红框设置。

4、点击下一步 ,进入选择目标页面,注意红框设置。

5、点击下一步 ,进入指定表复制或查询页面,注意红框设置。

6、点击下一步 ,进入选择源表和源视图页面,注意红框设置。

7、下一步,直到完成。出现执行结果页面。

8、最后在SqlServer查询表。

这是第二次了,市场部那边又来要求改数据。他们要改的是数据库某张表中类似商品价格等的数据,需要改的地方又多,我们上次是靠新来的兄弟一个个给Update进去的,这次老大去教了他们Update语句,把烦人的皮球踢给他们了。但这样一个个更新很明显不是办法,我想通过excel直接把数据导入数据库应该是可行的吧,就开始找方法了。

我想至少有这样两种比较容易实现的方法:

1、直接用Sql语句查询

2、先用excle中的数据生成xml文件,再把xml导入数据库

第一种方法(方法二以后再试),找到联机丛书里实现此功能的Sql语句如下:

SELECT FROMOpenDataSource('MicrosoftJetOLEDB40', 'DataSource="c:Financeaccountxls";UserID=Admin;Password=;Extendedproperties=Excel50')…xactions

语句是有了,但我还是试了很久,因为各个参数具体该怎么设置它没有说。Data Source就是excel文件的路径,这个简单;UserId、Password和Extended properties这三个属性我改成了各种各样的与本机有关的用户名、密码以及excel版本都不对,最后用上面例子里的值“User ID=Admin;Password=;Extended properties=Excel 50”才成功了,晕啊;最后个“xactions”更是查了很多资料,其实就仅仅是excel文件里所选的工作表名而已,怪我对excel不够熟悉了,另外注意默认的Sheet1要写成[Sheet1$]

最后,看看我成功的测试

数据库里建好一个表testTable_1,有5个字段id, name, date, money, content,C盘下book1xls文件的sheet1工作表里写好对应的数据并设好数据类型,执行如下插入语句:

insertintotestTable_1([name],[date],[money],[content]) Select[姓名],[日期],[金额],[内容] FROMOpenDataSource('MicrosoftJetOLEDB40', 'DataSource="C:Book1xls"; UserID=Admin;Password=;Extendedproperties=Excel50')…[Sheet1$]

select里的列名我一开始用代替,但发现输出顺序与我预期的不同,是“金额、内容、日期、姓名”,不知道具体有什么规律,就老老实实写名字了。 *** 作成功

回过头来看看市场部的要求,假设在我这张表里实现,可以先判断如excel里存在与记录相同的name字段(name要唯一非空)时就删除记录,之后再插入,这样简单,但自增的id字段会因为插入而改变,那是不行的了。可行的方法是先读出excel里全部记录,然后用游标一条条分析,如果存在这个name就更新否则就插入。OK,下次就不用让他们再对着文档一条条Update了

首先我们肯定有一个excel的文件,文件中有大量的数据,每一列代表着不同的字段。

我们首先建立一个数据库,然后在库中建立表,表的每个字段对应excel中的每一列。

一、假如excel中有四列数据,希望导入到数据库中

mytable

中,对应的字段分别为field1,field2,field3,field4

二、在excel表格中增加一列(excel应该是e列),利用excel的公式自动生成sql语句(这个很重要,别写错了),具体方法

如下:

1、增加一列(excel应该是e列,因为我们原有4列数据,分别为a\b\c\d列)

2、在第一行(这一行必须为有效数据行否则出错)的e列,就是e1中输入公式=concatenate("insert

into

table

(field1,field2,field3,field4)

values

('",a1,"','",b1,"','",c1,"','",d1,"');")

3、此时e1已经生成如下的sql语句:

insert

into

mytable

(field1,field2,field3、field4)

values

('a1中

的数据','b1','c1','d1');

4、将e1的公式复制到所有行的e列,(就是用鼠标点住e1单元格的右下角,一直拖拽下去,到最后一行数据)

5、此时e列已经生成了所有的sql语句

6、选中e列把e列数据复制到一个纯文本文件中,命名为

例如:exceltxt

三、把exceltxt

放到数据库中运行即可,可通过命令行导入

source

f:\exceltxt

以上就是关于如何将excel数据导入数据库全部的内容,包括:如何将excel数据导入数据库、如何将excel中的数据导入到数据库、Excel怎么将填入的数据导进数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9561958.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存