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;
} ?>