PHP Excel表格导出图片方法


1、进入PHP Excel官网后,找到右边的download按钮,下载,下载完成的是一个压缩文件,解压放到你的项目目录里。

2、查看解压文件是否有PHPExcel_Worksheet_Drawing图片文件类。

3、创建一个excel.php文件,开始编写PHP Excel到出。

实例代码:

<?php /** * PHP Excel表格导出图片方法 * 2015-07-30 */
    
     function ExcelCustomers(){ /*引入phpexcel核心类文件*/
        
        include ROOT_PATH.'/system/libraries/phpExcel/PHPExcel.php'; /*实例化excel类*/
        
        $excel = new PHPExcel(); /*实例化excel图片处理类*/
        
        $objDrawing = new PHPExcel_Worksheet_Drawing(); /*设置文本对齐方式*/
    
        $excel->getDefaultStyle()->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $excel->getDefaultStyle()->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); $objActSheet = $excel->getActiveSheet(); $letter = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N'); /*设置表头数据*/
        $tableheader = array('导出日期','姓名', '身份证号', '民族','性别' ,'地址','房号','入住次数','身份头像'); /* 填充表格表头*/
        
        for($i = 0;$i < count($tableheader);$i++) { $excel->getActiveSheet()->setCellValue("$letter[$i]1","$tableheader[$i]"); /*设置font*/
            $excel->getActiveSheet()->getStyle("$letter[$i]1")->getFont()->setName(iconv('gbk', 'utf-8', '宋体')); $excel->getActiveSheet()->getStyle("$letter[$i]1")->getFont()->setSize(16); $excel->getActiveSheet()->getStyle("$letter[$i]1")->getFont()->setBold(true); /*设置下划线*/
            //$excel->getActiveSheet()->getStyle("$letter[$i]1")->getFont()->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE);
            /*设置字体颜色*/
            //$excel->getActiveSheet()->getStyle("$letter[$i]1")->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_WHITE); //$excel->getActiveSheet()->getStyle("$letter[$i]1")->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_WHITE);
            /*设置表格宽度*/
            $objActSheet->getColumnDimension("$letter[$i]")->setWidth(20); $objActSheet->getColumnDimension("$letter[2]")->setWidth(30); $objActSheet->getColumnDimension("$letter[5]")->setWidth(60); } $startdate = !empty($_POST['startdate']) ? $_POST['startdate'] : date('Y-m-d',time()); /* 设置表格数据*/
        $hotel_customer = M('hotel_customer'); $sql = "SELECT addtime,username,idcard,gender,national,address,photo,photo_s,number,check_num FROM tc_hotel_customer WHERE last_checkin = '".$startdate."'"; $Obj = $hotel_customer ->query($sql); if(!empty($Obj)){ foreach ($Obj as $k=>$v){ $Obj[$k]['addtime'] = date('Y-m-d',time()); list($Oldrwidth, $Oldheight) = getimagesize($v['photo']); if($Oldrwidth > 126 && $Oldheight > 102){ $Obj[$k]['photos'] = $v['photo_s']; }else{ $Obj[$k]['photos'] = $v['photo']; } if($v['gender'] == 1){ $Obj[$k]['gender'] = '男'; }else{ $Obj[$k]['gender'] = '女'; } unset($Obj[$k]['photo']); unset($Obj[$k]['photo_s']); } }else{ echo "<script>alert('亲,今天没人入住哟!');location.href='index.php?ac=hotel_customers';</script>"; exit; } /*向每行单元格插入数据*/
        
        for ($i = 0;$i < count($Obj);$i++) { $j = $i + 2; /*设置表格高度*/
            
            $excel->getActiveSheet()->getRowDimension($j)->setRowHeight(50); $excel->getActiveSheet()->getStyle($j)->getFont()->setSize(12); /*设置表格格式*/
            $excel->getActiveSheet()->getStyle("$letter[2]$j")->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER); for ($row = 0;$row < count($Obj[$i]);$row++) { $photos = ''; if ($row == (count($Obj[$i]) - 1 )) { /*实例化excel图片处理类*/
        
                $objDrawing = new PHPExcel_Worksheet_Drawing(); if(!empty($Obj[$i]['photos'])){ $photo = substr($Obj[$i]['photos'],7); $photoAry = explode('/',$photo); if(in_array('uploadfiles',$photoAry)){ unset($photoAry[0]); $photos = implode('/',$photoAry); //var_dump($photos);exit;
                            /*设置图片路径 切记:只能是本地图片*/
                            $objDrawing->setPath($photos); } }else{ $objDrawing->setPath($photos,false); } /*设置图片高度*/
                    $objDrawing->setWidth(20); $objDrawing->setHeight(60); /*设置图片要插入的单元格*/
                    
                    $objDrawing->setCoordinates("$letter[$row]$j"); /*设置图片所在单元格的格式*/
                    
                    $objDrawing->setOffsetX(50); $objDrawing->setRotation(20); $objDrawing->getShadow()->setVisible(true); $objDrawing->getShadow()->setDirection(50); $objDrawing->setWorksheet($excel->getActiveSheet()); continue; } $excel->getActiveSheet()->setCellValue("$letter[0]$j",$Obj[$i]['addtime']); $excel->getActiveSheet()->setCellValue("$letter[1]$j",$Obj[$i]['username']); $excel->getActiveSheet()->setCellValue("$letter[2]$j",$Obj[$i]['idcard']); $excel->getActiveSheet()->setCellValue("$letter[3]$j",$Obj[$i]['national']); $excel->getActiveSheet()->setCellValue("$letter[4]$j",$Obj[$i]['gender']); $excel->getActiveSheet()->setCellValue("$letter[5]$j",$Obj[$i]['address']); $excel->getActiveSheet()->setCellValue("$letter[6]$j",$Obj[$i]['number']); $excel->getActiveSheet()->setCellValue("$letter[7]$j",$Obj[$i]['check_num']); } } $date = $startdate."的住客资料"; /*实例化excel输入类并完成输出excel文件*/
    
        $write = new PHPExcel_Writer_Excel5($excel); //var_dump($write);exit;
        
        header("Pragma: public"); header("Expires: 0"); header("Cache-Control:must-revalidate, post-check=0, pre-check=0"); header("Content-Type:application/force-download"); header("Content-Type:application/vnd.ms-execl"); header("Content-Type:application/octet-stream"); header("Content-Type:application/download");; header("Content-Disposition:attachment;filename=$date.xls"); header("Content-Transfer-Encoding:binary"); $write->save('php://output'); //var_dump($row);exit;
 } ?>

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM