PHPExcel导出网络图片(如果是微信图片需将微信图片转成正常的图片地址)

数据库的格式:
在这里插入图片描述
后台:
在这里插入图片描述
需求:将用户导到excel表中

use PHPExcel_IOFactory;use PHPExcel;

//将用户导出到excel表中,并保存用户头像public function export(){$exportId = json_decode(Request::param('exportId'),true);//需要导出数据的id$exportS  = Db::name('member');//表名$objPHPExcel = new PHPExcel();$objActSheet = $objPHPExcel->getActiveSheet();try {$objActSheet->setCellValue( 'A1','用户名' );$objActSheet->setCellValue( 'B1','电话' );$objActSheet->setCellValue( 'C1','用户类型' );$objActSheet->setCellValue( 'D1','性别' );$objActSheet->setCellValue( 'E1','学校' );$objActSheet->setCellValue( 'F1','班级' );$objActSheet->setCellValue( 'G1','地址' );$objActSheet->setCellValue( 'H1','注册时间' );$objActSheet->setCellValue( 'I1','头像' );$objActSheet->setCellValue( 'J1','头像链接' );$cell_counter = 1;if( $exportId == null){$store_ids = $exportS->select();}else{$store_ids = $exportS->where('id','in',$exportId)->select();}foreach ($store_ids as $shopinfo) {switch ($shopinfo['user_type']) {case 1:$shopinfo['user_type'] = '学生';break;case 2:$shopinfo['user_type'] = '老师';break;case 3:$shopinfo['user_type'] = '家长';break;}switch ($shopinfo['gender']) {case 1:$shopinfo['gender'] = '男';break;case 0:$shopinfo['gender'] = '女';break;}$cell_counter++;$objPHPExcel->setActiveSheetIndex( 0 );if(strstr($shopinfo['avatar'], 'wx.qlogo')){$avatar = substr($shopinfo['avatar'],strripos($shopinfo['avatar'],"//")+2);     //截取微信头像中的https://$shopinfo['avatar']  =  $this->wx_image($avatar);$shopinfo['customer_return_img'] = $shopinfo['avatar'];//头像地址}else{$shopinfo['customer_return_img'] = $shopinfo['avatar'];}$objActSheet->setCellValue( 'A' . $cell_counter, $shopinfo['mobile'] );$objActSheet->setCellValue( 'B' . $cell_counter, $shopinfo['mobile'] );$objActSheet->setCellValue( 'C' . $cell_counter, $shopinfo['user_type'] );$objActSheet->setCellValue( 'D' . $cell_counter, $shopinfo['gender'] );$objActSheet->setCellValue( 'E' . $cell_counter, $shopinfo['school'] );$objActSheet->setCellValue( 'F' . $cell_counter, $shopinfo['class'] );$objActSheet->setCellValue( 'G' . $cell_counter, $shopinfo['address'] );$objActSheet->setCellValue( 'H' . $cell_counter, $shopinfo['create_time'] );$objActSheet->setCellValue( 'J' . $cell_counter, $shopinfo['avatar'] );if ($shopinfo['customer_return_img']) {// 图片生成$objDrawing[$cell_counter] = new \PHPExcel_Worksheet_MemoryDrawing();// 截取图片的格式,用不同的方法$end[$cell_counter] = substr($shopinfo['customer_return_img'], -3);if ($end[$cell_counter] == 'jpg' || $end[$cell_counter] == 'peg') {$img[$cell_counter] = @imagecreatefromjpeg($shopinfo['customer_return_img']);}else if ($end[$cell_counter] == 'png') {$img[$cell_counter] = @imagecreatefrompng($shopinfo['customer_return_img']);}else if ($end[$cell_counter] == 'gif') {$img[$cell_counter] = @imagecreatefromgif($shopinfo['customer_return_img']);}$objDrawing[$cell_counter]->setImageResource($img[$cell_counter]);$objDrawing[$cell_counter]->setRenderingFunction(\PHPExcel_Worksheet_MemoryDrawing::RENDERING_DEFAULT);//渲染方法$objDrawing[$cell_counter]->setMimeType(\PHPExcel_Worksheet_MemoryDrawing::MIMETYPE_DEFAULT);// // 设置宽度高度$objDrawing[$cell_counter]->setHeight(40);//照片高度$objDrawing[$cell_counter]->setWidth(60); //照片宽度// /*设置图片要插入的单元格*/$objDrawing[$cell_counter]->setCoordinates('I'.$cell_counter);// // 图片偏移距离$objDrawing[$cell_counter]->setOffsetX(8);$objDrawing[$cell_counter]->setOffsetY(8);$objDrawing[$cell_counter]->setWorksheet($objPHPExcel->getActiveSheet());// 表格高度$objActSheet->getRowDimension($cell_counter)->setRowHeight(80);}else{$objActSheet->setCellValue('I'.$cell_counter, '');// 表格高度$objActSheet->getRowDimension($cell_counter)->setRowHeight(40);}}// Set column data auto widthfor ( $col = 'A'; $col !== 'N'; $col ++ ) {$objPHPExcel->getActiveSheet()->getColumnDimension( $col )->setAutoSize( true );}// Rename sheet$objPHPExcel->getActiveSheet()->setTitle( "用户统计表" );// Save Excel file$upload_dir = Env::get('root_path') . 'public/upload/excel/';if (!file_exists($upload_dir)){mkdir( $upload_dir, 0755, true );}$objWriter  = PHPExcel_IOFactory::createWriter( $objPHPExcel, 'Excel2007' );$filesname = time().'.xlsx';$objWriter->save( $upload_dir . '/'.$filesname );echo '1|'.config('website').'/upload/excel/'.$filesname;}catch ( Exception $e ){echo "导出失败";}}//微信头像转换成正常图片格式(如:jpg、gif、jpeg等)/*** @param $url  微信图片地址* @return string  正常图片地址*/public function wx_image($url){$header = array('User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:45.0) Gecko/20100101 Firefox/45.0','Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3','Accept-Encoding: gzip, deflate',);$curl = curl_init();curl_setopt($curl, CURLOPT_URL, $url);curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);curl_setopt($curl, CURLOPT_ENCODING, 'gzip');curl_setopt($curl, CURLOPT_HTTPHEADER, $header);$data = curl_exec($curl);$code = curl_getinfo($curl, CURLINFO_HTTP_CODE);curl_close($curl);if ($code == 200) {//把URL格式的图片转成base64_encode格式的!$imgBase64Code = "data:image/jpeg;base64," . base64_encode($data);}$img_content=$imgBase64Code;//图片内容if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $img_content, $result)) {$type = $result[2];//得到图片类型png?jpg?gif?$fileData  =   base64_decode(str_replace($result[1], '', $img_content));$image_name = uniqid() .".{$type}";$upload_dir = ENV::get('root_path') . 'public/upload/img/';if (!file_exists($upload_dir)){mkdir( $upload_dir, 0755, true );}$filedir = $upload_dir . '/' . $image_name;$src     = config( 'website' ) . 'upload/img/' . $image_name;if (file_put_contents($filedir,$fileData)) {return $src;}}}

结果:
在这里插入图片描述

还有一个小问题:
php对Excel设置宽度,不起作用,会的小伙伴,留言告知一下!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/11290.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何将微信电脑图片dat格式文件转换为jpg格式

电脑微信聊天过程中的图片文件格式为dat格式的文件,我们无法用普通的图片查看软件进行查看,那么如何将dat格式文件转换为jpg图片格式呢? 有办法,使用转换软件转换一下即可 首先点这里下载软件: 微信电脑版DAT图片格式…

微信DAT文件转JPG图片(图片恢复)

微信电脑版现在已经是日常工作生活必不可少的工具,有时候删除了聊天记录或者被系统清理软件清理了,但还想查看曾经的微信聊天图片。 这个时候辛辛苦苦找到了文件,却发现无法查看,因为微信电脑版为了保护我们的隐私,把…

微信电脑版聊天图片DAT格式转为普通JPG图片

微信是我们现在最常用的社交软件之一,它的功能越来越强大,我们的手机运行越来越慢。我们手机的运行内存越来越大的原因就是软件的功能越来越多,我们在使用这些功能的时候就会产生越来越多的无用垃圾,处理这种问题只有3种方法。 1.…

年度AI对话|达观陈运文:做私有部署的大模型,数据安全更具优势

本文内容来源于达观数据董事长兼CEO陈运文受邀出席36氪数字时氪的《年度AI对话》专栏采访内容 大模型既带来了压力,也带来了机会 文 | 杨俊 编辑 | 石亚琼 封面来源|企业官方 掌握了人工智能就掌握了新时代的生产力密码。在ChatGPT爆火的当下&#xff…

私有化运行大型语言模型 - 私有化的 GPT

目录 概述 Understanding the Privacy Challenge​了解隐私挑战 Potential Solutions to the Privacy Challenge​隐私挑战的潜在解决方案 Federated Learning​ 联邦学习 Homomorphic Encryption​ 同态加密

零基础,零成本,部署一个属于你的大模型

前言 看了那么多chatGPT的文章,作为一名不精通算法的开发,也对大模型心痒痒。但想要部署自己的大模型,且不说没有算法相关的经验了,光是大模型占用的算力资源,手头的个人电脑其实也很难独立部署。就算使用算法压缩后的…

Metabase可视化BI系统部署安装及简单使用

metabase 是国外开源的一个可视化系统,语言使用了Clojure TypeScript。 Clojure(/ˈkloʊʒər/)是Lisp程式語言在Java平台上的現代、動態及函數式方言。来自维基百科。 我也是第一次看到这个语言,知道它是可以运行在Java环境上的…

常用ChatGPT类模型的总结

做一个现在常用ChatGPT类模型的总结,后续会持续更新,大家如果有新的可以在评论里说 一、商用的(不开源)的: ChatGPT: https://chat.openai.com/ Claude: 可以参考我的这篇文章,北方的郎:Ant…

最新类ChatPDF及AutoGPT开源18大功能平台——闻达手把手超详细环境部署与安装——如何在低显存单显卡上面安装私有ChatGPT GPT-4大语言模型LLM调用平台

目录 前言闻达框架简介前期准备电脑要求安装anaconda安装相应版本的CUDA配置ChatGLM-6B Conda环境安装pytorch 类ChatPDF及AutoGPT开源模型——闻达环境部署及安装相关代码及模型下载解压模型到指定地址配置文件修改根据使用的不同模型,安装相关库运行体验运行chatG…

浅析ChatGPT:历史沿革、应用现状及前景展望

关注公众号,发现CV技术之美 浅析ChatGPT:历史沿革、应用现状及前景展望 刘禹良1,白翔1,金连文2 1华中科技大学人工智能与自动化学院 2华南理工大学电子与信息学院 人工智能已成为新一代信息时代的核心技术,广泛应用于多…

图灵奖得主、AI 教父、神经网络大师——谷歌副总裁 Hinton 离职——称其对毕生工作感到后悔和恐惧

图灵奖得主、AI 教父、神经网络大师——谷歌副总裁 Hinton 离职——称其对毕生工作感到后悔和恐惧 目录

谁是近期全世界最受瞩目的聊天对象?

在今天,答案有且仅有一个,那就是ChatGPT。 Chat GPT——可能很多人被这个冗长的名字搞糊涂了。说实话,我第一眼也看不出到底什么意思,看了英文原文, GPT就是Generative Pre-training Transformer(预训练生…

ChatGPT一枪打服谷歌AI人才!情人节组团加盟OpenAI

金磊 梦晨 发自 凹非寺量子位 | 公众号 QbitAI ChatGPT的号角一吹,连谷歌的顶尖AI人才都开始纷纷倒戈了! 就在今天凌晨,前后仅半个小时功夫,就有2位谷歌大脑人才连夜宣布入盟OpenAI: 他们是Jason Wei和Hyung Won Chung…

ChatGPT 冲击下,特斯拉曾留不住的 AI 大牛,再次回归 OpenAI !

整理 | 屠敏 出品 | CSDN(ID:CSDNnews) 技术圈毕竟还是一个“圈”,兜兜转转都是会遇见。 半年前,特斯拉 AI 的中坚力量,即 AI 部门的主管 Andrej Karpathy 在给自己放了 4 个月的长假之后,选择离…

实测最像ChatGPT的中文产品:能解释三体、懂弱智吧的梗,内测开启人人都能试!...

明敏 发自 凹非寺量子位 | 公众号 QbitAI 最像ChatGPT的中文产品,出现了! 昨晚,一个名叫Inspo的生成式对话AI,刚刚在“民间”开启内测,马上引发不小反响。 体验过的博主表示: 1分钟搞定3份策划,…

ChatGPT 有哪些 “激动人心的时刻“?以及自己的一些思考

文章目录 一、前言二、主要内容三、一些思考 🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 一、前言 近日,英伟达创始人兼 CEO 黄仁勋与 OpenAI 联合创始人及首席科学家伊尔亚-苏茨克维 (Ilya Sutskever) 展开了一次 “炉边谈话”。 黄…

ChatGPT可能马上取代你,这是它能做的十个工作

“我们必须把这些东西看作提高生产力的工具,而不是完全的替代品。” 文|韩旭阳 来源|华尔街见闻(ID:wallstreetcn) 封面来源|视觉中国 ChatGPT 的横空出世,在业界掀起了惊涛骇浪。专…

AI 2022:浪潮奔涌,百舸争流

编者按:2022年已接近尾声,但技术的发展永不落幕。许多人说,2022是生成式AI的一年。这一年里,我们见证了Stable Diffusion和DALL-E2等AI图像编辑/绘画工具的爆发,也目睹了ChatGPT狂热席卷全球。 但AI技术和产业的发展&a…

惊艳的产品背后,是锐利的设计思维

缘起 几年前,我偶然用一个 叫 Zine 的小app 写了两篇文章,感觉非常好。 后来在网上认识 了Zine 团队的创始人 Louis,也喜欢上了他们的另一个 App:Varlens, 最近他们推出了记笔记的 App Lattics,一些功能也…

谷歌AI绘画4大牛携手创业,天使估值7个亿

衡宇 发自 凹非寺量子位 | 公众号 QbitAI 最近的谷歌像个大漏勺,这不,又有AIGC核心成员联手跑路咯! 量子位独家获悉,这回跟谷歌say byebye的,是文生图核心团队——AI绘画模型Imagen论文的四位核心作者,出走…