thinkphp5.0导出带图片的excel表格

不知道这个功能难不难,反正弄出来了,有点骄傲

一天需要做这样一个功能,导出后台的信息,要求必须要导出图片,从网上查了很多,导出功能的很多,但带图片的少之又少,就发一篇玩玩。写的不好莫怪,毕竟是处女篇0

上代码

//二维码下载
	public function download(){
		//业务逻辑省去不写
		/*-----------------------*/
		
		foreach($xlsData as $k=>$v){ 
			
			$xlsData[$k]["erw_addtime"] = date('Y-m-d H:i:s',$v["erw_addtime"]);//处理时间
			$xlsData[$k]['erw_class'] = $classify_[$v['erw_class']];//二维码
			$xlsData[$k]['is_ok'] = $is_ok[$v['is_ok']];//是否禁用
			$xlsData[$k]['is_use'] = $is_use[$v['is_use']];//是否使用
		}   
		
		Vendor('PHPExcel.PHPExcel');//调用类库,路径是基于vendor文件夹的
		Vendor('PHPExcel.PHPExcel.Worksheet.Drawing');
		Vendor('PHPExcel.PHPExcel.Writer.Excel2007');
		$objExcel = new \PHPExcel();
		$objWriter = \PHPExcel_IOFactory::createWriter($objExcel, 'Excel2007'); 
		//设置内容
		$objActSheet = $objExcel->getActiveSheet();
		$key = ord("A");
		$letter =explode(',',"A,B,C,D");
		$arrHeader = array('二维码编号','二维码','奖品','生成时间');
		$lenth =  count($arrHeader);
        for($i = 0;$i < $lenth;$i++) {
             $objActSheet->setCellValue("$letter[$i]1","$arrHeader[$i]");
		};
			//填充表格信息
			foreach($xlsData as $k=>$v){
	            $k +=2;
	            $objActSheet->setCellValue('A'.$k,$v['number']);
				
				// 图片生成
				$objDrawing[$k] = new \PHPExcel_Worksheet_Drawing();
				$objDrawing[$k]->setPath('.'.substr($v['img'],22));
				// 设置宽度高度
				$objDrawing[$k]->setHeight(80);//照片高度
				$objDrawing[$k]->setWidth(80); //照片宽度
				/*设置图片要插入的单元格*/
				$objDrawing[$k]->setCoordinates('B'.$k);
				// 图片偏移距离
				$objDrawing[$k]->setOffsetX(12);
				$objDrawing[$k]->setOffsetY(12);
				$objDrawing[$k]->setWorksheet($objExcel->getActiveSheet());
				
	            $objActSheet->setCellValue('C'.$k, $v['erw_class']);
				$objActSheet->setCellValue('D'.$k, $v['erw_addtime']); 
	            // 表格高度
	            $objActSheet->getRowDimension($k)->setRowHeight(80);
	        }
	  
	        $width = array(10,15,15,10);
	        //设置表格的宽度
	        $objActSheet->getColumnDimension('A')->setWidth($width[0]);
	        $objActSheet->getColumnDimension('B')->setWidth($width[1]);
	        $objActSheet->getColumnDimension('C')->setWidth($width[2]);
			$objActSheet->getColumnDimension('D')->setWidth($width[3]);  
	
			
			
	         $outfile = "二维码列表.xls";
	         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');
		 
	}

张先生的博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张先生002

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值