您当前的位置:首页 > 互联网教程

把Excel工作表中数据导入数据库

发布时间:2025-05-25 06:05:19    发布人:远客网络

把Excel工作表中数据导入数据库

一、把Excel工作表中数据导入数据库

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

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

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

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

SELECT* FROMOpenDataSource('Microsoft.Jet.OLEDB.4.0','DataSource="c:Financeaccount.xls";UserID=Admin;Password=;Extendedproperties=Excel5.0')…xactions

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

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

insertintotestTable_1([name],[date],[money],[content]) Select[姓名],[日期],[金额],[内容] FROMOpenDataSource('Microsoft.Jet.OLEDB.4.0','DataSource="C:Book1.xls"; UserID=Admin;Password=;Extendedproperties=Excel5.0')…[Sheet1$]

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

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

二、excle用做数据库管理怎么映射

1.首先,通过Execl新建一名为“映射表”的工作薄,设计好“用户映射表”的结构,导入所有员工姓名(图1)。其次,将从各应用系统数据库中导出的账号表保存为Execl表格,并导入至“映射表”工作簿中,并统一修改内容,仅保留账号表中的姓名和账号两字段。

2.接下来,我们根据VLOOKUP函数语法开始设计,在“用户映射表”的B3表格中,输入公式:

“=VLOOKUP(用户映射表!A3,ERP账号表!$A$3:$B$11,2,0)”,意思即为,在“ERP账号表”的A3至B11区域中,查找“用户映射表”的A3格数据,如匹配,则将“ERP账号表”中的第二列(即B列)的数据,拷贝至B3表格中。由于在公式中的“用户映射表!A3”采用相对值,所以,选中B3列,向下拉动鼠标在数据区拖拉填充公式即可。

依照上述公式,依次将其他应用系统账户,自动填充到“用户映射表”中(图2)。

3.最后,我们只需对“用户映射表”稍作修改即可。复制“用户映射表”数据,在新建的工作表中,右键单击,选择“选择性粘贴”,在弹出的窗口中,选择“数值”,确定后便只留下数值,而剔除了所有的公式,接着按下快捷键Ctrl+F,弹出“查找和替换”窗口,切换至“替换”选项卡,在“查找内容”栏中输入#N/A,保持“替换为”栏为空(图3),单击“全部替换”,得到最终结果(图4)。

任意打开一张Execl表格,在工具栏中单击插入函数图标,在弹出的“插入函数”窗口中,向导会指引你找到满足要求的函数。在“常用函数”列表框中,选中VLOOKUP函数,在窗口下沿立刻显示出该函数意义:搜索表区域首列满足条件的元素,确定待检索单元格在区域中的行序号,再进一步返回选定单元格的值。

三、excel导入oracle数据库没有excle选项

1、准备数据:在excel中构造出需要的数据。

2、将excel中的数据另存为文本文件(有制表符分隔的)。

3、将新保存到文本文件中的数据导入到pl*sql中在pl*sql中选择text importer,在出现的窗口中选择“Data from Text file”,然后再选择“Open data file”,在弹出的文件选择框中选中保存有数据的文本文件,此时将会看到data from text file中显示将要导入的数据。