phpexcel中 有什么方法可以删除多个相同的行(数据相同),只保留一行吗?

phpexcel中 有什么方法可以删除多个相同的行(数据相同),只保留一行吗?,第1张

我不知道你顷樱则说的是导入还是导出,如果导出雀棚的话,你可以在导出前在数据库中颂模删除重复的数据(就是行),假如你的表叫demo的话,那么语句你可以这样写delete from a using demo as a, demo as b where (a.id >b.id) and (a.site = b.site)其中site作为你认为重复数据的判断条件

你可以试一试 phpexcel的掘掘处理类 他们貌似梁散凳有解橡旅决方法 去下载一个源码看一下就行。。还有 如果可以的话 推荐用csv 不用excel 用csv就算都读出来 处理 删掉 再写入 速度也很快

使用PHPexcel,你自己到网上搜这个插件吧,将需要的文件解压到Classes目录下,那么把这个目录放在框架thinkphp/extend/vendor/下面,我将自己项目中的部分代码给你看看

在ACTION中设置上传文件并获袜滚取文件:

import('ORG.Net.UploadFile')

$upload = new UploadFile()// 实例化告宏余上传类

$upload->maxSize = 3145728// 设置附件上传大小

$upload->allowExts = array('xls')// 设置附件上传类型

$upload->savePath = './Uploads/'// 设置附件上传目录

if(!$upload->upload()) {// 上传错误提示错误信息

$this->error($upload->getErrorMsg())

}else{// 上传成功 获取上传文件信息

$info = $upload->getUploadFileInfo()

}

$filetmpname = './Uploads/'.$info[0]['savename']

下面就需要使用phpexcel来解析

Vendor('Classes.PHPExcel')

$objPHPExcel = PHPExcel_IOFactory::load($filetmpname)

$excelarray= $objPHPExcel->getSheet(0)->toArray()

unlink($filetmpname)//删除上传的文件

//你要注意,excel表中如果从第一行的数据开始导入,那么直接按照下面的代码就可以,如果有表头之类的不需要的行,那么就是用 array_shift先删除数组中不需要的行

//循环给数据字段赋值

foreach($excelarr as $k=>$v){

$data[$k]['字段1']=$v[1]

$data[$k]['字段2']=$v[2]

$data[$k]['字段3']=$v[3]

$data[$k]['字段4']=$v[4]

$data[$k]['字段5']=$v[5]

}

上面的步骤就是获取了表格中的数据并赋值给了数组,绝改下面就可以直接插入到数据库中了

$list=$charu=D('数据表名')->addAll($data)

非常简单吧,至于数据中的类型和验证等,自己在需要的位置设定就可以了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12273824.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存