黛德批量导入excel数据到后台的方法

  

黛德批量导入excel数据到后台的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!

<强>黛德怎么批量导入excel数据到后台?

<强>黛德批量导入excel数据到后台文章系统的开发教程

对于一些企业网站或者淘宝客类网站经常会需要将一些excel的数据批量导入到网站,通过批量导入来节省时间而不是从网站后台一条一条的录入加数据,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

推荐学习:织梦cms

对于一些企业网站或者淘宝客类网站经常会需要将一些excel的数据批量导入到网站,通过批量导入来节省时间而不是从网站后台一条一条的录入加数据。本教程就是以把excel数据导入到织梦系统(dedecms)为例子进行批量数据导入的开发,假设把excel数据导入到织梦主表dede_archives(还有微表和附加表,这里就用主表代表这三个表)里面。

批量导入excel数据原理:通过查询excel,把数据一条一条的读取出来,然后,通过我们开发的php程序把数据导入到表里面。

通过上面的原理我们知道,我们可以把批量导入excel数据分为两部分,一部分是开发出从excel读取数据的程序,另一部分是开发出把读取出来的数据插入到数据库表dede_archives里面。

从excel读取数据程序开发

其实,这一步有一个老外已经帮我们开发好了,这个老外开发了一套专门读取excel数据表的程序叫PHPExcel类库。

这个excel类库还包括其它的一些功能,这里不一一介绍,您可以下载来看看,这里只对读取excel进行讲解。

把读取出来的数据插入到主表dede_archives里面

当通过PHPExcel类库里面提供的类读取数据后,这一步就是把数据插入到数据库表里面,所以,这一个教程的开发其实就是在开发这一部分,把从excel读取出来的数据插入到主表中的程序开发。

为了讲解方便,我们把插入数据库表中的数据的文件名叫做excelinert。php、下面就在这个文件里面进入程序开发,把读取出来的数据插入到数据库表中。

插入数据开发原理

1)开发前的准备:

在excelinsert.php里面加入一个标题头的编码,目的是为了统一编码以免出现乱码:标题(“内容类型:text/html; charset=utf8");

引入织梦系统的公共文件common.inc.php,为什么要引入这个文件,我们在插入数据库表前,首页要连接网站的数据库,如果不连接将无法插入数据库数据。要注意,引入文件的路径要改成您自己的,因为,我把织梦系统安装在了dedecms里面,所以,路径中有这个目录名称dedecms,如果您安装在根目录的话就去掉这个路径。

设置错误报告,设置时区,设置程序运行时间,当然,这个运行时间可以不设置,设置PHPExcel类的类库存路径,然后,引入IOFactory.php文件,这个文件是最重要的,本功能就是通过这个文件来处理的,这几个设置代码如下:

这些代码全是PHPExcel类里面提供的,所以,这里不用多解释。

2)开发插入数据代码:

表示通过文件excelinert.php插入excel里面的名称为test1的里面的数据,把这些数据插入到织梦数据库表dede_archvies里面,栏目id为6的表中,其中,dopost=exdata表示插入数据口令,因为,作一个判断的话,那什么人也能插入到您的数据库表里面数据了,这是非常可怕的,就像一个网站没有后台一样,这是不是非常可能谁都可以进入网站后台里面,同样的,如果不加这个口令的话,谁都可以插入数据,这是不安全的。

所以,在插入数据前先通过美元得到超级数组获取到类型id,和n的值,然后,进行对比看看有没有权限进行插入数据库操作,第一个判断应当是判断口令是否正确,如果这个都不正确的话,就不再向下操作了。

为了讲解方便、下面提供excelinsert。php开发完整的代码:

& lt; php ?   头(“内容类型:text/html; charset=utf8");   require_once (& # 39;/. ./dedecms/include/common.inc.php& # 39;);      error_reporting (E_ALL);   set_time_limit (0);   作用(& # 39;欧洲/伦敦# 39;);/* */* *包括路径   set_include_path (get_include_path ()。PATH_SEPARATOR。& # 39;. ./. ./. ./类/& # 39;);/* * PHPExcel_IOFactory */包括& # 39;PHPExcel/IOFactory.php& # 39;;   如果(!空($ _GET)) {   $类型id=$ _GET [& # 39; typeid # 39;];   dopost美元=$ _GET[& # 39;做# 39;];   if ($ dopost==癳xdata") {   如果(!空($ _GET [& # 39; n # 39;])) {   inputFileName=& # 39;美元。/& # 39;。$ _GET [& # 39; n # 39;]强生# 39;.xlsx& # 39;;   $ objPHPExcel=PHPExcel_IOFactory:负载($ inputFileName);   sheetData=objPHPExcel→美元getActiveSheet ()→toArray (null,真的,真的,真的);   数组$ rowarr=();   美元dsql→执行(& # 39;所有# 39;,“选择生物圈二号,从“dede_addonshop”“bio1;);   而(rowall=dsql→美元GetArray(& # 39;所有# 39;)){   美元rowarr []=$ rowall;   }   foreach (sheetData美元美元v) {   foreach (rowarr美元美元vt) {   如果(in_array (v (& # 39; b # 39;],美元vt),和美元v(& # 39;一个# 39;]==$ vt (& # 39; bio1& # 39;)) {   回声“货号为:“。美元v (& # 39; b # 39;] !”& lt; br>厂商为:“。美元v(& # 39;一个# 39;]!”& lt; br>的数据已在表中,请在excel文件里面删除这一条后再添加!“;   退出;   }   }   }//附加表插入数据前处理   行=dsql→美元GetOne(“选择援助,援助desc"生物圈二号从“dede_addonshop”秩序;);   如果(!空(行)美元){   美元援助=$ row[& # 39;援助# 39;];   生物圈二号=美元行[& # 39;生物圈二号# 39;];   其他}{   美元援助=0;   $生物圈二号=& # 39;& # 39;;   }//处理重复问题   如果(生物圈二号==sheetData美元[count ($ sheetData)] [& # 39; b # 39;)) {   ShowMsg(“不能重复添加内容“,& # 39;javascript:; & # 39;);   退出;   }//主表插入数据前处理   arcrow=dsql→美元GetOne(“从‘dede_archives选择id命令id desc");   如果(!空(arcrow美元)){   arcid=arcrow美元[& # 39;id # 39;];   其他}{   美元arcid=0;   }//微表插入数据前处理   tinyrow=dsql→美元GetOne(“从‘dede_arctiny选择id命令id desc");   如果(!空(tinyrow美元)){   tinyid=tinyrow美元[& # 39;id # 39;];   其他}{   美元tinyid=0;   }//找出最大的id   $ id=max(援助,arcid美元,tinyid美元);   $ alphalpha=阵列(& # 39;一个# 39;& # 39;b # 39;, & # 39; c # 39;, & # 39; d # 39;, & # 39; e # 39;, & # 39; f # 39;, & # 39;舌鳎# 39;,& # 39;h # 39;, & # 39;我# 39;,& # 39;强生# 39;,& # 39;k # 39;, & # 39; l # 39;, & # 39;猴# 39;,& # 39;n # 39;, & # 39; o # 39;, & # 39; p # 39;, & # 39;提问# 39;,& # 39;" # 39;,& # 39;& # 39;,& # 39;t # 39;, & # 39; u # 39;, & # 39; v # 39;, & # 39; w # 39;, & # 39; x # 39;, & # 39; y # 39;, & # 39; z # 39;, & # 39; aa # 39;, & # 39; ab # 39;, & # 39;交流# 39;,& # 39;广告# 39;,& # 39;ae # 39;, & # 39;房颤# 39;,& # 39;ag) # 39;, & # 39;啊# 39;,& # 39;ai # 39;, & # 39; aj # 39;, & # 39; ak # 39;, & # 39;阿尔# 39;,& # 39;我# 39;,& # 39;您# 39;,& # 39;ao # 39;, & # 39; ap # 39;, & # 39; aq # 39;, & # 39; ar # 39;, & # 39;作为# 39;,& # 39;在# 39;,& # 39;非盟# 39;,& # 39;av # 39;, & # 39; aw # 39;, & # 39; ax # 39;, & # 39; ay # 39;, & # 39; az # 39;);//字段数量   $ fieldnum=count ($ sheetData [1]);   字段=fieldvalue美元=& # 39;& # 39;;   ($ i=0;美元我& lt;fieldnum美元;$我+ +){   字段。美元=$ sheetData [1] [alphalpha美元[$ i]]。& # 39;& # 39;;   }   $字段=substr(字段,美元0,1);//遍历数组   foreach (sheetData美元美元值){   美元的作用=GetMkTime (GetDateTimeMk(时间()));   单击美元=mt_rand (200);   if($价值[& # 39;一个# 39;]==& # 39;bio1& # 39; |美元价值[& # 39;一个# 39;]==& # 39;厂商& # 39;){   继续;   }   $ id=$ id + 1;//获取字段值$价值[& # 39;一个# 39;];   ($ i=0;美元我& lt;fieldnum美元;$我+ +){   fieldvalue美元。=?null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

黛德批量导入excel数据到后台的方法