这篇文章主要介绍了关于利用phpexcel 导出数据和图片的代码,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下
前言图片对excel来说是一个对象,正常是导出不到单元格里去,所以大家都很困惑到底该怎么使用php语言来进行导出呢!下面我就详细的讲解下怎么使用php导出图片到excel(此例是使用ci框架)
注释:这个是ci项目的哦,别的框架放到类库里就行了
上代码//ci框架引入phpexcel$this->load->library('phpexcel');//实例化phpexcel类$objphpexcel = new phpexcel();//图片处理类,这个才是图片导出的关键哦$objdrawing = new phpexcel_worksheet_drawing();//然后正常设置我们导出图片的代码$objphpexcel->createsheet(0);$objphpexcel->setactivesheetindex(0);$currentsheet = $objphpexcel->getactivesheet();// 水平居中(位置很重要,建议在最初始位置,这里我举例,abcdefg,可以按照自己的需求定义!~)$objphpexcel->setactivesheetindex(0)->getstyle('a')->getalignment()->sethorizontal(\phpexcel_style_alignment::horizontal_center);$objphpexcel->setactivesheetindex(0)->getstyle('b')->getalignment()->sethorizontal(\phpexcel_style_alignment::horizontal_center);$objphpexcel->setactivesheetindex(0)->getstyle('c')->getalignment()->sethorizontal(\phpexcel_style_alignment::horizontal_center);$objphpexcel->setactivesheetindex(0)->getstyle('d')->getalignment()->sethorizontal(\phpexcel_style_alignment::horizontal_center);$objphpexcel->setactivesheetindex(0)->getstyle('e')->getalignment()->sethorizontal(\phpexcel_style_alignment::horizontal_center);$objphpexcel->setactivesheetindex(0)->getstyle('f')->getalignment()->sethorizontal(\phpexcel_style_alignment::horizontal_center);$objphpexcel->setactivesheetindex(0)->getstyle('g')->getalignment()->sethorizontal(\phpexcel_style_alignment::horizontal_center);// 设置个表格宽度(这个一定要设置哦,不然图片会大厨单元格的)$objphpexcel->getactivesheet()->getcolumndimension('a')->setwidth(20);$objphpexcel->getactivesheet()->getcolumndimension('b')->setwidth(20);$objphpexcel->getactivesheet()->getcolumndimension('c')->setwidth(20);$objphpexcel->getactivesheet()->getcolumndimension('d')->setwidth(20);$objphpexcel->getactivesheet()->getcolumndimension('e')->setwidth(20);$objphpexcel->getactivesheet()->getcolumndimension('f')->setwidth(20);$objphpexcel->getactivesheet()->getcolumndimension('g')->setwidth(20);//设置第一行标题$currentsheet->setcellvalue('a1', "序列号");$currentsheet->setcellvalue('b1', "设备id");$currentsheet->setcellvalue('c1', "设备密码");$currentsheet->setcellvalue('d1', "设备编码");$currentsheet->setcellvalue('e1', "二维码");$currentsheet->setcellvalue('f1', "二维码");$currentsheet->setcellvalue('g1', "二维码");//定义变量初始化为2,从第二行开始$idx = 2;//开始循环数组数据!~foreach ($devices as $device) { //设置数据所在单元格,我这里把图片放在e里 $currentsheet->setcellvalue('a' . $idx, $device['sequence']); $currentsheet->setcellvalue('b' . $idx, $device['device_unique']); $currentsheet->setcellvalue('c' . $idx, $device['device_pwd']); $currentsheet->setcellvalue('d' . $idx, $device['device_code']); //设置单元格高度,这个是重点哦 $currentsheet->getrowdimension($idx) -> setrowheight(60) //获取图片 $this->load->model('device_codes_model'); $codes = $this->device_codes_model->getonecodes($id); //开始设置图片啦~~ $objdrawing->setpath($codes['code_file']); // 设置图片宽度高度 $objdrawing->setheight(80);//照片高度 $objdrawing->setwidth(80); //照片宽度 /*设置图片要插入的单元格*/ $objdrawing->setcoordinates('e'.$idx); // 图片偏移距离 $objdrawing->setoffsetx(12); $objdrawing->setoffsety(12); $objdrawing->setworksheet($objphpexcel->getactivesheet()); $idx++;}//导出excel到表格$sheetwrite = phpexcel_iofactory::createwriter($objphpexcel, 'excel2007');
以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注!
相关推荐:
三种php递归函数的实现方法及实现数字的累加
thinkphp5框架自定义验证器的实现
php上传excel文件导入数据到mysql数据库
以上就是利用phpexcel 导出数据和图片的代码的详细内容。
