thinkphp导入Excel去重
/*导入Excel有两种可能
1.导入的Excel本身就有重复项
2.导入的Excel数据和已有的数据库信息有重复项
解决思路:
1.先不管是否有重复项,直接导入到一张临时表,然后经过去重处理插入到一张新表(比较麻烦,数据处理过程多)
2.先获取Excel的数据,然后循环读取数据,在循环里把每条数据和数据库里的数据进行对比,如果没有就插入,
如果有就更新这条数据(导入过程中就处理数据,过程简单)
*/
//导入Excel public function importExecl() { import('ORG.Net.UploadFile'); $upload=new UploadFile();// 实例化上传类 $upload->allowExts=array('xls','xlsx');// 设置附件上传类型 $upload->savePath='./Uploads/';// 设置附件上传目录 $upload->saveRule=date('Ymdhis');//设置附件上传名称 if(!$upload->upload()){// 上传错误提示错误信息 $this->error($upload->getErrorMsg()); }else{//上传成功 获取上传文件信息 $info=$upload->getUploadFileInfo(); } $filetmpname='./Uploads/'.$info[0]['savename'];//获取上传的Excel的文件名 import('ORG.Util.PHPExcel'); $objPHPExcel = PHPExcel_IOFactory::load($filetmpname); $sheetCount = $objPHPExcel->getSheetCount(); $excelarr=array(); $excelarr= $objPHPExcel->getSheet(0)->toArray(); $line_list=M("line_list"); for($i=1;$i<=count($excelarr);$i++) { $data['type'] = $excelarr[$i][0]; $data['account_name'] = $excelarr[$i][1]; $data['clerk'] = $excelarr[$i][2]; $data['checkin_time'] = $excelarr[$i][3]; $data['client_name'] = $excelarr[$i][4]; $data['project'] = $excelarr[$i][5]; $data['capacity'] = $excelarr[$i][6]; $data['line_number'] = $excelarr[$i][7]; $data['monthly_amount'] = $excelarr[$i][8]; $data['open_time'] = $excelarr[$i][9]; $data['billing_time'] = $excelarr[$i][10]; $data['down_time'] = $excelarr[$i][11]; $data['invoice'] = $excelarr[$i][12]; $data['status'] = $excelarr[$i][13]; $data['remarks'] = $excelarr[$i][14];//上面的$date是读取Excel的每条数据
$result = $line_list->where ("line_number='{$data['line_number']}'")->field('id,line_number')->find(); if (empty($result['line_number'])) { $rs = $line_list->add ($data);//如果线路编号为空就添加这条数据 }else{ $rs=$line_list->where("id='{$result['id']}'")->save($data);//如果已有这条数据就更新这条数据 } } if($rs){ unlink($filetmpname);//这里是删除上传后的文件 $this->success("上传成功","__URL__/index"); }else{ $this->error("上传失败","__URL__/index"); } }
thinkphp导入Excel去重相关推荐
- ThinkPHP导入Excel文件到数据库的简单实现
第一步:在官网下载PHPExcel插件下载传送门,放在ThinkPHP/Library/Vendor目录下 第二步:前端简单代码 <!DOCTYPE html> <html> ...
- php excel 导入大量,ThinkPHP实现excel的批量导入功能
2.解压PHPExcel 解压文件 thinkphp中在路径为:ThinkPHP->Library->Vendor中新建文件夹PHPExcel,之后再把红框选中的两个文件,新建的PHPEx ...
- thinkPHP的Excel插件
原文地址 http://www.thinkphp.cn/topic/14005.html 总结的注意事项 1实例化第三方类,要在类名前加\ ,不然引用地址不对. 实现步骤: 一:在http://php ...
- php excel导入数据库显示乱码,php修改excel表格数据库数据格式-使用phpexcel导入excel表格数据到MYSQL,乱码怎么解决...
PHP 用PHPExcel往数据库导入大量数据 估计0是null,所以不显示了,可以换个思路,让他显示为字符串 $number = 0; echo ''.$number 原生PHP代码实现excel导 ...
- 解析 EXCEL 去重
1 解析 EXCEL 去重操作 描述: 最近在对业务进行实现时,遇到一个问题,就是针对于从EXCEL中读取数据后,如何先去除重复数据,然后再进行一系列的操作呢? 思考: 1 当时组长有提供一种思路,先 ...
- PHPExcel类导入excel表带图片
使用PHPExcel类导入excel表格数据,表中带图片导入 public function importPost(){// 上传成功后的excel文件路径$file = $this->requ ...
- 如何使用PHPEXCEL导入EXCEL文件
一.目的 先说为什么要写这篇博客,我的目标是,将一个excel文件导入到一个ThinkPHP的项目的数据库之中.这个看似简单的目标却让我搞了两天两夜,原因主要有两点,一个是自己没有php的基础,也不了 ...
- word录入表单数据 java 导入系统,java导入excel | 怎么把excel中的数据批量导入到word中的表格中...
用javascript怎么实现把excel中的数据批量导入到数据库表中 这个js不能直接实现吧 我们程序用到 先读取excel内容转换成数组 然后放到页面上 再提交表单 储存 MySql如何批量添加数 ...
- python绘制动态图表怎么存下来_用python如何实现导入excel数据后自动生成图表?python如何实现交互式动态图表?...
这个需求涉及的环节太多了.导入excel文件,获取数据 -- 需要xlrd模块把数据导入python 2. 设定输出图表类型 -- 需要matplot模块.根据数据复杂度,可能需要ETL,那么需要pa ...
最新文章
- linux 查看san链路状态,Linux下查看网络状态的方法
- Activiti工作流实战-2
- 甲骨文中国公司如何如何打赢这场裁员翻身仗?
- linux vps 运行exe文件夹,linux 64位下安装wine1.6 Windows模拟器(用来运行.exe文件) 编译安装32位wine...
- JEECG Framework 3.5.2 (快速开发平台) ACE版本发布
- 前端:HTML/05/lt;meta标记,XHTML简介及其编写规范,表格标签(lt;table)及其相关标签(lt;tr,lt;td或lt;th)
- python接口自动化(六)--发送get请求接口(详解)
- java-工具-轮子
- 支付宝——(JAVA)支付测试开发
- 计算机应用技术作业答案,计算机应用与技术网上作业题参考答案20121109
- 计算机网络网络应用之P2P应用
- 如何清除Hacktool.Rootkit病毒,如何让msdirectx.sys此文件彻底删除,谢谢!
- UINO优锘:EMV,让IT告警实现至繁归于至简
- 调制深度(modulation depth)是什么?
- 帝国cms php循环,帝国cms 灵动标签 循环嵌套
- LeetCode知识点总结 - 1413
- 我来到广东第一“鬼城”,打算买房安家
- 《PHASEN:A Phase and Harmonics-Aware Speech Enhancement Network》Pytorch代码学习
- linux 计算程序运行时间
- 哈马德国际机场在全球最佳机场评选中排名第一;合肥君悦酒店浪漫呈现“悦-七夕”限定晚宴 | 全球旅报...
热门文章
- druid产生大量mysql的sleep连接
- java 不定参数_java中不定长参数的实例用法
- [经验] 新版SkyIAR、Easy Image X在有些PE里不能运行的解决办法
- python怎么算数据平均数,python怎样求10个数的平均数
- Avada v5.4.4 最新版本破解教程
- 计算机网络(十二)IPv6介绍
- android6.0重力工具箱,GravityBox[MM]下载-重力工具箱 GravityBox[MM] v6.3.6_手机乐园
- 往年计算机一级试题,回顾!往年计算机一级试题及答案解析(3)
- 【公共管理硕士论文】共享自行车使用不规范问题治理探析(节选)
- tp3.x和tp5.0的区别