PHP建站技术分享-从入门到精通PHP建站技术分享-从入门到精通PHP建站技术分享-从入门到精通

QQ:420220301 微信/手机:150-3210-7690
当前位置:首页 > CMS教程 > Fastadmin

导入含有图片的excel 表格 处理方法

管理员 2024-12-14
Fastadmin
28

比如遇到导入商品列表进数据库,商品某一栏含有图片logo,这是可以采用下面这样进行导入处理,重写import 方法

$file = $this->request->request('file');if (!$file) {   $this->error(__('Parameter %s can not be empty', 'file'));}$inputFileName = ROOT_PATH . DS . 'public' . DS . $file;if (!is_file($inputFileName)) {   $this->error(__('No results were found'));}//实例化reader$ext = pathinfo($inputFileName, PATHINFO_EXTENSION);if (!in_array($ext, ['xls'])) {   $this->error(__('Unknown data format'));}$reader = new Xls();// 读取excel文件try {   if (!$PHPExcel = $reader->load($inputFileName)) {       $this->error(__('Unknown data format'));   }   $sheet = $PHPExcel->getSheet(0);} catch(Exception $e) {   die('加载文件发生错误:"'.pathinfo($inputFileName,PATHINFO_BASENAME).'": '.$e->getMessage());}$data=$sheet->toArray();//该方法读取不到图片 图片需单独处理/*************图片单独处理开始*****************/$imageFilePath=ROOT_PATH.'/public/uploads/images/' ;//图片保存目录if (!file_exists ( $imageFilePath )) {   mkdir("$imageFilePath", 0777, true);}//处理图片foreach($sheet->getDrawingCollection() as $img) {   list($startColumn,$startRow)= PHPExcel_Cell::coordinateFromString($img->getCoordinates());//获取图片所在行和列   $imageFileName = Random::uuid();   switch($img->getMimeType()) {       case 'image/jpg':       case 'image/jpeg':           $imageFileName.='.jpg';           imagejpeg($img->getImageResource(),$imageFilePath.$imageFileName);           break;       case 'image/gif':           $imageFileName.='.gif';           imagegif($img->getImageResource(),$imageFilePath.$imageFileName);           break;       case 'image/png':           $imageFileName.='.png';           imagepng($img->getImageResource(),$imageFilePath.$imageFileName);           break;   }   $startColumn = ABC2decimal($startColumn);//由于图片所在位置的列号为字母,转化为数字   $data[$startRow-1][$startColumn]='/uploads/images/'.$imageFileName;//把图片插入到数组中}/*************图片单独处理结束*****************///可以再这里打印 $data  会发现图片已经上传,图片一栏的值是图片地址,后面自己进行数据组装调整插入数据库就可以了。

有些 类需要自己导入,需要注意下


希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 iCMS, Fastadmin, ClassCMS, LeCMS, PbootCMS, PHPCMS, 易优CMS, YzmCMS, 讯睿CMS, 极致CMS, Wordpress, HkCMS, YznCMS, WellCMS, ThinkCMF, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。

相关推荐

扫码关注

qrcode

QQ交谈

回顶部