如何把Excel表中数据导入数据库

如何把Excel表中数据导入数据库,第1张

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了

步骤1:点击开始,打开Microsoft

Excel

2010。

2

步骤2:打开之后,点击数据,其他来源,来自SQL

Server。

3

步骤3:打开数据链接向导之后,输入服务器名称和登陆用户名和密码。点击下一步

步骤4:点击下一步之后,报错,不能够正常链接数据库。

步骤5:打开SQL

Server

数据库代理服务器,查看代理停止工作,将其启动。

步骤6:修改服务器名称为SQL

Server所在的服务器的IP地址填写入服务器名称,登陆名称和密码全部为sa。

步骤7:进入,选择数据库和表。选择PUBS,点击下一步。

步骤8:点击下一步,保持链接文件,点击完成。

步骤9:点击导入数据

步骤10

连接属性,连接名称:17216031

pubs

employee,连接文件:C:\Documents

and

Settings\lys\My

Documents\我的数据源\17216031

pubs

employeeodc

连接字符串:

Provider=SQLOLEDB1;Persist

Security

Info=True;User

ID=sa;Data

Source=17216031;Use

Procedure

for

Prepare=1;Auto

Translate=True;Packet

Size=4096;Workstation

ID=L10-1DA235E90;Use

Encryption

for

Data=False;Tag

with

column

collation

when

possible=False;Initial

Catalog=pubs

命令文本:"pubs""dbo""employee"

步骤11:点击确定,输入密码Sa。

步骤12:

我们可以看到将SQL

Server数据写入了EXCEL中。

查询EXCEL中数据库:

查询数据库中数据:

SELECT

FROM

employee

打开企业管理器,打开要导入数据的数据库,在表上按右键,所有任务-->导入数据,d出DTS导入/导出向导,按 下一步 , 2、选择数据源 Microsoft Excel 97-2000,文件名 选择要导入的xls文件,按 下一步 , 3、选择目的 用于SQL Server 的Microsoft OLE DB提供程序,服务器选择本地(如果是本地数据库的话,如 VVV),使用SQL Server身份验证,用户名sa,密码为空,数据库选择要导入数据的数据库(如 client),按 下一步 , 4、选择 用一条查询指定要传输的数据,按 下一步 , 5、按 查询生成器,在源表列表中,有要导入的xls文件的列,将各列加入到右边的 选中的列 列表中,这一步一定要注意,加入列的顺序一定要与数据库中字段定义的顺序相同,否则将会出错,按 下一步 , 6、选择要对数据进行排列的顺序,在这一步中选择的列就是在查询语

①启动Excel2013,打开要进行提取的表格,看到D列中有很多换行单元格,我要将第二行数据提取出来,在E2单元格输入公式: =REPLACE(D2,1,FIND(CHAR(10),D2),"")

②回车,得到结果珠海。

③为了简便输入,下面利用单元格填充的方法完成余下的 *** 作,将鼠标移动到E2单元格右下角,出现+号,双击,即可快速填充完毕。

什么数据库?如果是mssql数据库的话

打开企业管理器,展开服务器-展开数据库-右键点击那个数据库名字(想把excel中的数据导入到的数据库-所有任务-导入数据

然后按照提示一步一步的来,很简单的

这里以SQL SERVE2008为例。SQLSERVER2008有一个“数据导入导出功能”,当然我们也可以打开数据库之后,在数据库上点击右键,然后选择“任务”,选择“导入数据”,我们就看到d出淡入数据的对话框:

这里我们主要导入数据的源格式是EXCEL的,在excel文件中,我们通常需要整理成数据表格的形式,excel中的数据不要出现合并的单元格等,必须是和数据库表对应的一条条记录的形式。在上图中我们先选择数据源为excel,然后再选择excel文件的路径,在最下面有一个“首行包含列名称”的复选项,默认是选中的,也就是说在导入数据的时候会把excel的第一行当做数据库表的列名称,根据需要进行选择。然后选择下一步:

上图中我们主要完成选择目的数据库,按照需要选择即可。然后我们直接点击下一步,指导出现下面的画面:

这就会打开excel文件的工作薄,我们选择一个工作簿(sheet),如果我们的excel中的数据列和数据库表中的列不是对应,则需要进行调整,上图中先选中一个“源”,然后再选择这个源对应的“目标”,此时按钮“编辑映射”处于可用状态,我们点击这个按钮,出现下图:

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存