欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

thinkPHP5.0Excel表格导出

程序员文章站 2022-03-26 16:45:35
...
使用composer下载Excel表格扩展    composer require phpoffice/phpexcel    下载完成后再 vender/phpoffice/phpexcel下
/**方法**/
	public function export(){
	 	//查询数据库信息
	    $xlsData = Db('user')->select();
	    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,E,F");
	    $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['u_name']);
	        $objActSheet->setCellValue('B'.$k, $v['u_tel']);
	        // // 图片生成
	        $objDrawing[$k] = new \PHPExcel_Worksheet_Drawing();
	        $objDrawing[$k]->setPath(ROOT_PATH.'public/index/images/pic10.jpg');
	        // 设置宽度高度
	        $objDrawing[$k]->setHeight(40);//照片高度
	        $objDrawing[$k]->setWidth(40); //照片宽度
	        /*设置图片要插入的单元格*/
	        $objDrawing[$k]->setCoordinates('C'.$k);
	        // 图片偏移距离
	        $objDrawing[$k]->setOffsetX(30);
	        $objDrawing[$k]->setOffsetY(12);
	        $objDrawing[$k]->setWorksheet($objExcel->getActiveSheet());
	        //表格内容
	        $objActSheet->setCellValue('C'.$k, $v['u_id']);
	        $objActSheet->setCellValue('D'.$k, $v['u_pwd']);
	        // $objActSheet->setCellValue('E'.$k, $v['statuid'] == 1?'正常':'失效');
	        // 表格高度
	        $objActSheet->getRowDimension($k)->setRowHeight(20);
	    }
	    $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]);
	    $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');
	}


最后效果,完成

thinkPHP5.0Excel表格导出

自己敲得bug,跪着也要改完。只要敲不死,就往死里敲!

相关标签: Excel