PHPexcel 导出远程图片的方法主要看红色标记的代码

public function test()
{$arr = [['id' => 1,'name' => 'wyq','nickname' => '心如止水','password' => '123456','phone' => '13451167651','init_time' => 1622632002,'img'   => 'https://image.jewelryhunt.net/zhaowu/20220329/face39a4c182b19917417f59d007cade.png'],['id' => 2,'name' => 'fj','nickname' => 'xj','password' => '123456','phone' => '13451163651','init_time' => 1622632002,'img'   => 'https://image.jewelryhunt.net/zhaowu/20220329/face39a4c182b19917417f59d007cade.png']];//实例化$objExcel = new \PHPExcel();//设置文档属性$objWriter = \PHPExcel_IOFactory::createWriter($objExcel, 'Excel2007');//设置内容;$objActSheet = $objExcel->getActiveSheet();$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['name']);$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']){$img = substr($v['img'],'-3','3');if ($img == 'jpg'){$img1 = @imagecreatefromjpeg($v['img']);}if ($img == 'gif'){$img1 =  @imagecreatefromgif($v['img']);}if ($img = 'png'){$img1 = @imagecreatefrompng($v['img']);}//实例化图片操作类$objDrawing  = new PHPExcel_Worksheet_MemoryDrawing();//设置图片存放在表格的位置$objDrawing ->setCoordinates('G' . $k);$objDrawing -> setImageResource($img1);//设置X方向偏移量每一张图片的后面追加一个偏移量//$objDrawing ->setOffsetX(80*($k1+1));//设置Y方向偏移量$objDrawing ->setOffsetY(0);$objDrawing ->setWorksheet($objActSheet);//渲染方法$objDrawing->setRenderingFunction(\PHPExcel_Worksheet_MemoryDrawing::RENDERING_DEFAULT);////
                $objDrawing->setMimeType(\PHPExcel_Worksheet_MemoryDrawing::MIMETYPE_DEFAULT);//设置图片高$objDrawing ->setHeight(120);//设置图片宽$objDrawing ->setWidth(120);//设置表格的高度$objActSheet->getRowDimension($k)->setRowHeight(100);}$width = array(20, 20, 15, 10, 10, 30, 10, 15);//设置表格的宽度$objActSheet->getColumnDimension('A')->setWidth($width[5]);$objActSheet->getColumnDimension('B')->setWidth($width[1]);$objActSheet->getColumnDimension('C')->setWidth($width[0]);$objActSheet->getColumnDimension('D')->setWidth($width[5]);$objActSheet->getColumnDimension('E')->setWidth($width[5]);$objActSheet->getColumnDimension('F')->setWidth($width[5]);$objActSheet->getColumnDimension('G')->setWidth(30);$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');
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部