当前位置:Gxlcms > PHP教程 > phpexcel文件导出之二图像导出

phpexcel文件导出之二图像导出

时间:2021-07-01 10:21:17 帮助过:18人阅读

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

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

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


  1. /**
  2. * 导出对应的活动投票记录
  3. */ 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('暂无相关记录!'); }
  4. $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){
  5. set_time_limit(0);
  6. ini_set('memory_limit', '-1');
  7. $dir = $_SERVER['DOCUMENT_ROOT']; //定义网站根目录
  8. /** 设置报错级别 */
  9. error_reporting(E_ALL);
  10. ini_set('display_errors', TRUE);
  11. ini_set('display_startup_errors', TRUE);
  12. if (PHP_SAPI == 'cli')
  13. die('This example should only be run from a Web Browser');
  14. /** Include PHPExcel */
  15. require_once $dir.'/public/phpexcel/PHPExcel.php';
  16. // Create new PHPExcel object
  17. $objPHPExcel = new PHPExcel();
  18. // Set document properties
  19. $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
  20. ->setLastModifiedBy("Maarten Balliauw")
  21. ->setTitle("Office 2007 XLSX Test Document")
  22. ->setSubject("Office 2007 XLSX Test Document")
  23. ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
  24. ->setKeywords("office 2007 openxml php")
  25. ->setCategory("Test result file");
  26. /*实例化excel图片处理类*/
  27. $objDrawing = new PHPExcel_Worksheet_Drawing();
  28. $width = 25;
  29. $colnums = count($headArr);
  30. for($i = 0,$startA = "A"; $i < $colnums; $i++) {
  31. // 设置列数 $temp = chr(intval(ord($startA))+$i);
  32. $objPHPExcel->getActiveSheet()->getColumnDimension($temp)->setWidth($width);
  33. } //设置标题 for($i = 0,$startA = "A"; $i < $colnums; $i++) {
  34. // 设置列数 $temp = chr(intval(ord($startA))+$i).'1';
  35. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($temp, $headArr[$i]);
  36. }
  37. // Miscellaneous glyphs, UTF-8
  38. $row=2;
  39. foreach($alist as $val){
  40. //设置行高
  41. $objPHPExcel->getActiveSheet()->getRowDimension($k)->setRowHeight(50);
  42. $span = 0;
  43. $startA = 'A'; //填充每一行的内容
  44. foreach($val as $factval){
  45. $temp = chr(intval(ord($startA))+$span).$row; //1.图片填充列
  46. if(in_array($span in $imgindexs)){
  47. /*实例化插入图片类*/
  48. $objDrawing = new PHPExcel_Worksheet_Drawing();
  49. /*设置图片路径 切记:只能是本地图片*/
  50. $objDrawing->setPath($dir.$factval);
  51. /*设置图片高度*/
  52. $objDrawing->setHeight(50);
  53. $objDrawing->setWidth(50);
  54. /*设置图片要插入的单元格*/
  55. $objDrawing->setCoordinates($temp);
  56. $objDrawing->setWorksheet($objPHPExcel->getActiveSheet());
  57. }else{
  58. //2.非图片填充列
  59. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($temp, $factval);
  60. }
  61. $span++;
  62. } $row++;
  63. }
  64. // 重命名 worksheet
  65. $date = date('Y-m-d');
  66. $objPHPExcel->getActiveSheet()->setTitle($filename);
  67. // Set active sheet index to the first sheet, so Excel opens this as the first sheet
  68. $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"');
  69. header('Cache-Control: max-age=0');
  70. // If you're serving to IE 9, then the following may be needed
  71. header('Cache-Control: max-age=1');
  72. // If you're serving to IE over SSL, then the following may be needed
  73. header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
  74. header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
  75. header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
  76. header ('Pragma: public'); // HTTP/1.0 //注意这里 第二个参数写成 'Excel2007' 会避免特殊字符或中文乱码
  77. $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
  78. $objWriter->save('php://output');
  79. exit;
  80. }


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

人气教程排行