php excel文件导出之二 图像导出

原创
2016-06-23 13:30:43 804浏览

PHP文件导出 之图像 和 文字同时导出

其实之前写了个php文件导出,跟这个极为相似,因为项目需要对图像进行导出,查询一番,又写了一个,

这个能实现图像的导出(只能是本地图像,不能使用远程图像链接)


/**	 * 导出对应的活动投票记录	 */    public function exportxls(){        $alist = datafrom db;    //从数据库获取相应的数据        //1. 从数据库来获取对应的二维数组          $alist = array(...);          $list = $alist;          $data = array();          //2. 设置xls的 表头名          $headArr = array("排名","姓名","手机","获奖","参与时间");          if(false === empty($list)){              $i=0;              foreach ($list as $key => $val){                  //组装对应的单元格A,B,C,D。。。                  $data[$i] = array(                         ($i+1),            //A                         $val['name'],      //B                         $val['tel'],       //C                         $val['award'],     //D                         ...                      );                   $i++;              }          }else{              $data[0] = array('暂无相关记录!');          }  		$imgindexs = array(5); //放入是 图片的列的索引 第一个是0 此为一维数组        $fileName = "your name-".date('Y-m-d');        $this->output_customer($headArr,$data,$fileName,$imgindexs);    }    public function output_customer($headArr,$alist,$filename,$imgindexs){		set_time_limit(0);		ini_set('memory_limit', '-1');		$dir = $_SERVER['DOCUMENT_ROOT']; //定义网站根目录		/** 设置报错级别 */		error_reporting(E_ALL);		ini_set('display_errors', TRUE);		ini_set('display_startup_errors', TRUE);		if (PHP_SAPI == 'cli')		die('This example should only be run from a Web Browser');		/** Include PHPExcel */		require_once $dir.'/public/phpexcel/PHPExcel.php';		// Create new PHPExcel object		$objPHPExcel = new PHPExcel();		// Set document properties		$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")		->setLastModifiedBy("Maarten Balliauw")		->setTitle("Office 2007 XLSX Test Document")		->setSubject("Office 2007 XLSX Test Document")		->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")		->setKeywords("office 2007 openxml php")		->setCategory("Test result file");		/*实例化excel图片处理类*/		$objDrawing = new PHPExcel_Worksheet_Drawing();		$width = 25;		$colnums = count($headArr);		for($i = 0,$startA = "A"; $i getActiveSheet()->getColumnDimension($temp)->setWidth($width);		}        //设置标题        for($i = 0,$startA = "A"; $i setActiveSheetIndex(0)->setCellValue($temp, $headArr[$i]);		}		// Miscellaneous glyphs, UTF-8		$row=2;		foreach($alist as $val){			//设置行高		    $objPHPExcel->getActiveSheet()->getRowDimension($k)->setRowHeight(50);			$span = 0;			$startA = 'A';            //填充每一行的内容			foreach($val as $factval){			   $temp = chr(intval(ord($startA))+$span).$row;               //1.图片填充列			   if(in_array($span in $imgindexs)){			        /*实例化插入图片类*/					$objDrawing = new PHPExcel_Worksheet_Drawing();					/*设置图片路径 切记:只能是本地图片*/					$objDrawing->setPath($dir.$factval);					/*设置图片高度*/					$objDrawing->setHeight(50);					$objDrawing->setWidth(50);					/*设置图片要插入的单元格*/					$objDrawing->setCoordinates($temp);					$objDrawing->setWorksheet($objPHPExcel->getActiveSheet());      			   }else{				   //2.非图片填充列			       $objPHPExcel->setActiveSheetIndex(0)->setCellValue($temp, $factval);			   }			   $span++;			}            $row++; 	    }		// 重命名 worksheet		$date = date('Y-m-d');		$objPHPExcel->getActiveSheet()->setTitle($filename);		// Set active sheet index to the first sheet, so Excel opens this as the first sheet		$objPHPExcel->setActiveSheetIndex(0);        $filename = iconv("utf-8", "gb2312", $filename.date('Y-m-d'));        header('Content-Type: application/vnd.ms-excel;');        header('Content-Disposition: attachment;filename='.$filename.'.xls"');		header('Cache-Control: max-age=0');		// If you're serving to IE 9, then the following may be needed		header('Cache-Control: max-age=1');		// If you're serving to IE over SSL, then the following may be needed		header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past		header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified		header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1		header ('Pragma: public'); // HTTP/1.0               //注意这里 第二个参数写成 'Excel2007' 会避免特殊字符或中文乱码		$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');		$objWriter->save('php://output');		exit;	}


版权声明:本文为博主原创文章,未经博主允许不得转载。

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。