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'); }
PHPexcel 导出远程图片的方法主要看红色标记的代码
最新推荐文章于 2023-11-06 14:16:20 发布