dedecms告侵权 DEDECMS批量导入excel数据到后台文章系统的开发教程

软件教程 2024-02-06 07:02:36

于许多民营企业中文网站或是淘宝客类中文网站时常会须要将许多excel的统计数据大批量复制到中文网站,透过大批量引入来节省成本而并非从中文网站前台两条两条的存档加统计数据。本讲义是以把excel统计数据复制到织梦控制系统(dedecms)为范例展开大批量统计数据引入的合作开发,假定把excel统计数据复制到织梦主表dede_archives(除了微表和附带表,这儿就用主表代表者这四个表)里头。

大批量引入excel统计数据基本原理:透过查阅excel,把统计数据两条一条的加载出,接着,透过他们合作开发的php流程把统计数据复制到表里头。

透过下面的基本原理他们晓得,他们能把大批量引入excel统计数据分成两部份,一小部份是合作开发出从excel加载统计数据的流程,另一小部份是合作开发出把加载出的统计数据填入到统计资料库表dede_archives里头。

从excel加载统计数据流程合作开发

只不过,这一步棋有两个小姑娘早已帮他们合作开发好了,那个小姑娘合作开发了两套专门针对加载excel统计数据表的流程叫PHPExcelC#。

那个excelC#还包括其他的许多机能,这儿不逐一如是说,您能浏览来看一看,这儿只对加载excel展开传授。

把加载出的统计数据填入到主表dede_archives里头

当透过PHPExcelC#里头提供更多的类加载数据后,这一步棋是把统计数据填入到统计资料库表里头,因此,这两个讲义的合作开发只不过是在合作开发这一小部份 ; 把从excel加载出的统计数据填入到主附注的流程合作开发。

为的是传授方便快捷,他们把填入统计资料库附注的统计数据的配置文档叫作excelinert.php ,下面就在那个文档里头步入流程合作开发,把加载出的统计数据填入到统计资料库附注。

填入统计数据合作开发基本原理

1)合作开发前的预备:

在excelinsert.php里头重新加入两个header头的代码,目地是为的是标准化代码以防再次出现错字:header(“Content-type:text/html;charset=utf8”);

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

设置错误报告、设置时区、设置流程运行时间,当然,那个运行时间能不设置、设置PHPExcel类的C#存路径,接着,引入IOFactory.php文档,那个文档是最重要的,本机能是透过那个文档来处理的,这几个设置代码如下:

dedecms告侵权 DEDECMS批量导入excel数据到后台文章系统的开发教程_https://www.ybmzs.com_软件教程_第1张

(此图片来源于网络,如有侵权行为,请联系删除! )

这些代码全是PHPExcel类里头提供更多的,因此,这儿不用多解释。

2) 合作开发填入统计数据代码:

为的是传授方式,他们将直接以这种形式来填入统计数据:https://www.bnxb.com/excelinsert.php?dopost=exdata&typeid=6&n=test1

表示透过文档excelinert.php填入excel里头的名称为test1的里头的统计数据,把这些统计数据填入到织梦统计资料库表dede_archvies里头,栏目id为6的附注,其中,dopost=exdata表示填入统计数据口令,因为,作两个判断的话,那什么人也能填入到您的统计资料库表里头统计数据了,这是非常可怕的,就像两个中文网站没有前台一样,这是并非非常可能谁都能步入中文网站前台里头,同样的,如果不加那个口令的话,谁都能填入统计数据,这是不安全的。

因此,在填入统计数据前先透过$GET超级数组获取到typeid、do和n的值,接着,展开对比看一看有没有权限展开填入统计资料库操作,第两个判断应当是判断口令是否正确,如果那个都不正确的话,就不再向下操作了。

为了传授方便快捷,下面提供更多excelinsert.php合作开发完整的代码:
复制header("Content-type:text/html;charset=utf8"); require_once(/http://blog.aftss.cn/a/zhimengjiaocheng/dedecms/include/common.inc.php); error_reporting(E_ALL);set_time_limit(0); date_default_timezone_set(Europe/London); set_include_path(get_include_path(). PATH_SEPARATOR .http://blog.aftss.cn/Classes/); include PHPExcel/IOFactory.php;if(!empty($_GET)){ $typeid=$_GET[typeid]; $dopost=$_GET[do];if($dopost=="exdata"){if(!empty($_GET[n])){ $inputFileName=http://blog.aftss.cn/a/zhimengjiaocheng/development/.$_GET[n]..xlsx; $objPHPExcel=PHPExcel_IOFactory::load($inputFileName);$sheetData=$objPHPExcel->getActiveSheet()->toArray(null,true,true,true); $rowarr=array(); $dsql->Execute(all,"select bio2,bio1 from `dede_addonshop`");while($rowall=$dsql->GetArray(all)){ $rowarr[]=$rowall;}foreach($sheetData as $v){foreach($rowarr as $vt){if(in_array($v[B],$vt)&&$v[A]==$vt[bio1]){ echo "货号为:".$v[B]." 厂商为:".$v[A]." 的统计数据已在附注,请在excel文档里头删除这两条后再添加!";exit;}}}//附带表填入统计数据前处理 $row=$dsql->GetOne("select aid,bio2 from `dede_addonshop` order by aid desc");if(!empty($row)){ $aid=$row[aid]; $bio2=$row[bio2];}else{ $aid=0; $bio2=;}//处理重复问题if($bio2==$sheetData[count($sheetData)][B]){ShowMsg("不能重复添加内容",javascript:;);exit;}//主表填入统计数据前处理 $arcrow=$dsql->GetOne("select id from `dede_archives` order by id desc");if(!empty($arcrow)){ $arcid=$arcrow[id];}else{ $arcid=0;}//微表填入统计数据前处理$tinyrow=$dsql->GetOne("select id from `dede_arctiny` order by id desc");if(!empty($tinyrow)){ $tinyid=$tinyrow[id];}else{ $tinyid=0;}//找出最大的id $id=max($aid,$arcid,$tinyid); $alphalpha=array(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ);//字段数量 $fieldnum=count($sheetData[1]); $fields=$fieldvalue=;for($i=0; $i < $fieldnum; $i++){ $fields .=$sheetData[1][$alphalpha[$i]].,;} $fields=substr($fields,0,-1);//遍历数组foreach($sheetData as$value){ $pubdate=GetMkTime(GetDateTimeMk(time())); $click=mt_rand(50,200);if($value[A]==bio1|$value[A]==厂商){continue;} $id=$id+1;//获取字段值$value[A];for($i=0; $i < $fieldnum; $i++){ $fieldvalue .=" ,".$value[$alphalpha[$i]]." ";}//标题 $C=trim($value[C]);//保存到主表 $senddate=time(); $arcquery="INSERT INTO `dede_archives`(id,typeid,title,mid,channel,pubdate,senddate,click,ismake)VALUES ($id,$typeid,$C,1,6,$pubdate,$senddate,$click,-1);"; $dsql->ExecuteNoneQuery($arcquery);//保存到附近加表 $query="INSERT INTO `dede_addonshop`(aid,typeid,$fields) VALUES ($id,$typeid{$fieldvalue});"; $dsql->ExecuteNoneQuery($query); $fieldvalue=;//保存到微表 $tinyquery="INSERT INTO `dede_arctiny`(id,typeid,channel,mid,senddate)VALUES ($id,$typeid,6,1,$senddate);"; $dsql->ExecuteNoneQuery($tinyquery);} $num=count($sheetData)-2;ShowMsg("恭喜,成功填入 ".$num." 条统计数据!",javascript:;);}

发表回复