把Excel表中数据导入数据库
时间:2023-07-04 13:52:32
这是第二次了,市场部那边又来要求改数据。他们要改的是数据库某张表中类似商品价格等的数据,需要改的地方又多,我们上次是靠新来的兄弟一个个给Update进去的,这次老大去教了他们Update语句,把烦人的皮球踢给他们了。但这样一个个更新很明显不是办法,我想通过excel直接把数据导入数据库应该是可行的吧,就开始找方法了
我想至少有这样两种比较容易实现的方法:
1、直接用Sql语句查询
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了
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
excel怎么快速复制文件夹名称到word?
![](https://img.aspxhome.com/file/2023/1/41071_0s.jpg)
网页数据导入到Excel表格并同步更新的方法
![](https://img.aspxhome.com/file/2023/6/a156796_0s.jpg)
wps2016在线模板怎么设置开启或关闭?
![](https://img.aspxhome.com/file/2023/6/a166616_0s.jpg)
excel如何制作工资条?超详细的工资条排序法教程
![](https://img.aspxhome.com/file/2023/8/42788_0s.jpg)
WPS excel一秒拼合多表格数据
![](https://img.aspxhome.com/file/2023/1/a185401_0s.jpg)
怎么修复Win10更新时候提示0x80073712错误代码?
![](https://img.aspxhome.com/file/2023/1/a278960_0s.png)
excel计算文本型公式的结果教程
华为p40pro和p40有什么不同_华为p40pro和p40有什么不同的详细教程
![](https://img.aspxhome.com/file/2023/3/a295091_0s.jpg)
Word软件怎么设置网格线的操作方法教学
![](https://img.aspxhome.com/file/2023/4/31004_0s.png)
win10推送安装怎么关闭_win10推送安装服务关闭教程
![](https://img.aspxhome.com/file/2023/4/a306187_0s.jpg)
怎样通过电子地图去识别路况?
![](https://img.aspxhome.com/file/2023/9/a343545_0s.jpg)
Face ID 失效是什么原因,如何解决?
![](https://img.aspxhome.com/file/2023/7/a196817_0s.png)
Win7旗舰版怎么完美升级Win11 Win7旗舰版升级Win11系统教程
![](https://img.aspxhome.com/file/2023/1/a281193_0s.jpg)
Excel中姓名如何设置成左右对齐
![](https://img.aspxhome.com/file/2023/4/a153384_0s.jpg)
excel 开方函数的两种方法:使用开方函数和数学幂运算完成开方
惠普战X要如何重装系统?惠普战X重装电脑系统的方法
![](https://img.aspxhome.com/file/2023/25/a217304_0s.png)
excel 如何利用TRUNC函数取整
![](https://img.aspxhome.com/file/2023/0/a162140_0s.gif)
Excel中COUNTIF函数有什么使用技巧
苹果Mac中如何安装java应用?java mac版安装教程
![](https://img.aspxhome.com/file/2023/8/a215058_0s.jpg)
Word中利用字体制作各种实用标志的方法
![](https://img.aspxhome.com/file/2023/3/20833_0s.jpg)