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