TinkPHP5.1使用phpexcel导出excel包含图片问题解决方案

阅读: 评论:0

TinkPHP5.1使用phpexcel导出excel包含图片问题解决方案

TinkPHP5.1使用phpexcel导出excel包含图片问题解决方案

//安装phpexcel的composer包
composer require phpoffice/phpexcel<?php
namespace appindexcontroller;use thinkController;
use PHPExcel_Worksheet_Drawing;
use PHPExcel;
use PHPExcel_IOFactory;
use PHPExcel_Style_Alignment;
use thinkfacadeEnv;class Index extends Controller
{public function index(){$root = Env::get('root_path');$path = $root.'public/static/images/avatar.png';$arr = [['id' => 1,'username' => 'wyq','nickname' => '心如止水','password' => '123456','phone' => '13451167651','init_time' => 1622632002,'img'   => $path],['id' => 2,'username' => 'fj','nickname' => 'xj','password' => '123456','phone' => '13451163651','init_time' => 1622632002,'img' => $path],['id' => 3,'username' => 'szy','nickname' => 'szy','password' => '123456','phone' => '13451163641','init_time' => 1622632002,'img' => $path]];//实例化$objExcel = new PHPExcel();//设置文档属性$objWriter = PHPExcel_IOFactory::createWriter($objExcel, 'Excel2007');//设置内容;$objActSheet = $objExcel->getActiveSheet();$objActSheet->getStyle("A:Z")->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER)->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);$key = ord("A");$letter = explode(',', "A,B,C,D,E,F,G");//设置表头$arrHeader = array('用户ID', '用户名', '昵称','用户密码','手机号码' ,'注册时间','图片');$lenth = count($arrHeader);//填充表头信息 A1:用户ID、B1:用户名、C1:昵称for ($i = 0; $i < $lenth; $i++) {$objActSheet->setCellValue("$letter[$i]1", "$arrHeader[$i]");};//填充表格信息foreach ($arr as $k => $v) {//从第二行开始$k += 2;//表格内容$objActSheet->setCellValue('A' . $k, $v['id']);$objActSheet->setCellValue('B' . $k, $v['username']);$objActSheet->setCellValue('C' . $k, $v['nickname']);$objActSheet->setCellValue('D' . $k, $v['password']);$objActSheet->setCellValue('E' . $k, $v['phone']);$objActSheet->setCellValue('F' . $k, date('Y-m-d H:i:s', $v['init_time']));if ($v['img']){//实例化图片操作类$objDrawing  = new PHPExcel_Worksheet_Drawing();//设置图片地址$objDrawing -> setPath($v['img']);//设置图片高$objDrawing ->setHeight(30);//设置图片宽$objDrawing ->setWidth(30);//设置图片存放在表格的位置$objDrawing ->setCoordinates('G' . $k);//设置X方向偏移量$objDrawing ->setOffsetX(12);//设置Y方向偏移量$objDrawing ->setOffsetY(12);$objDrawing ->setWorksheet($objActSheet);//设置表格的高度$objActSheet->getRowDimension($k)->setRowHeight(50);}$width = array(20, 20, 15, 10, 10, 30, 10, 15);//设置表格的宽度$objActSheet->getColumnDimension('A')->setWidth(10);$objActSheet->getColumnDimension('B')->setWidth(20);$objActSheet->getColumnDimension('C')->setWidth(20);$objActSheet->getColumnDimension('D')->setWidth(30);$objActSheet->getColumnDimension('E')->setWidth(20);$objActSheet->getColumnDimension('F')->setWidth(20);$objActSheet->getColumnDimension('G')->setWidth(10);}$outfile = "人员表" . time() . ".xlsx";//清空输出缓冲区ob_end_clean();//告诉浏览器强制下载header("Content-Type: application/force-download");//二进制文件类型header("Content-Type: application/octet-stream");header("Content-Type: application/download");//设置表名header('Content-Disposition:inline;filename="' . $outfile . '"');header("Content-Transfer-Encoding: binary");header("Cache-Control: must-revalidate, post-check=0, pre-check=0");header("Pragma: no-cache");$objWriter->save('php://output');}
}

本文发布于:2024-02-02 19:16:37,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170687259845880.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:解决方案   图片   phpexcel   excel
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23