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了
一使用php
excel
parser
pro软件,但是这个软件为收费软件;
二可将excel表保存为csv格式,然后通过phpmyadmin或者sqlyog导入,sqlyog导入的方法为:
·将excel表另存为csv形式;
·打开sqlyog,对要导入的表格右击,点击“导入”-“导入使用加载本地csv数据”;
·在d出的对话框中,点击“改变”,把选择“填写excel友好值”,点击确定;
·在“从文件导入”中选择要导入的csv文件路径,点击“导入”即可导入数据到表上;
三一个比较笨的手工方法,就是先利用excel生成sql语句,然后再到mysql中运行,这种方法适用于excel表格导入到各类sql数据库:
·假设你的表格有a、b、c三列数据,希望导入到你的数据库中表格tablename,对应的字段分别是col一、col二、col三
·在你的表格中增加一列,利用excel的公式自动生成sql语句,具体方法如下:
一)增加一列(假设是d列)
二)在第一行的d列,就是d一中输入公式:
=concatenate("insert
into
tablename
(col一,col二,col三)
values
(",a一,",",b一,",",c一,");")
三)此时d一已经生成了如下的sql语句:
insert
into
table
(col一,col二,col三)
values
('a','一一','三三');
四)将d一的公式复制到所有行的d列(就是用鼠标点住d一单元格的右下角一直拖拽下去啦)
5)此时d列已经生成了所有的sql语句
陆)把d列复制到一个纯文本文件中,假设为sqltxt
·把sqltxt放到数据库中运行即可,你可以用命令行导入,也可以用phpadmin运行
用VLOOKUP函数,具体请见VLOOKUP 用途:在表格或数值数组的首列查找指定的数值,并由此返回表格或数组当前行中指定列处的数值。当比较值位于数据表首列时,可以使用函数VLOOKUP 代替函数HLOOKUP。 语法:VLOOKUP(lookup_value,table_array,col_index_num,range_lookup) 参数:Lookup_value为需要在数据表第一列中查找的数值,它可以是数值、引用或文字串。Table_array 为需要在其中查找数据的数据表,可以使用对区域或区域名称的引用。Col_index_num 为table_array 中待返回的匹配值的列序号。Col_index_num为1 时,返回table_array 第一列中的数值; col_index_num 为2,返回table_array 第二列中的数值,以此类推。Range_lookup为一逻辑值,指明函数VLOOKUP 返回时是精确匹配还是近似匹配。如果为TRUE 或省略,则返回近似匹配值,也就是说,如果找不到精确匹配值,则返回小于lookup_value 的最大数值;如果range_value 为FALSE, 函数VLOOKUP 将返回精确匹配值。如果找不到,则返回错误值#N/A。实例:如果A1=23、A2=45、A3=50、A4=65,则公式“=VLOOKUP(50,A1:A4,1,TRUE)”返回50。
找到你要导入的数据库,右击-->任务-->导入数据,出现的第一个窗体“选择数据源”就是提示你要选择你要导入的是什么数据,在“数据源”那个选项出选择“Microsoft
Excel”的选项,对应的在下面会提示选择excel数据的路径,选择路径之后,然后下一步,根据后续的提示继续就可以了。
以上就是关于如何把Excel表中数据导入数据库全部的内容,包括:如何把Excel表中数据导入数据库、excel表格如何导入数据库中、如何用EXCEL表格链接数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)