phpexcel导出图片

来源:互联网 发布:广州多益网络 徐波 编辑:程序博客网 时间:2024/05/19 09:09
  1. 上次项目中用到了phpexcel库导出excel文件,昨天下午,变态的客户要求将图片也要导出到excel表格中,查了半天资料,也查不出个所以然...就这简单的小功能摸索了整整一个下午才搞定,上午没事就重新写了个小demo,分享出来,希望能帮助到大家。

  2. 1.如果还没有使用过phpexcel的童鞋,先把这篇文章看一下,熟悉一下phpexcel的下载配置等,本文主要介绍插入图片;

    phpexcel基础文章:

    http://jingyan.baidu.com/article/915fc414f4c2e451384b205c.html

  3. 2.下面直接开始上代码吧,废话就不多说了,感觉自己写的注释还算可以,大家稍微看下都能明白的,嗯^_^;

    <?php

    /*引入phpexcel核心类文件*/

    include '/phpexcel/PHPExcel.php';

    /*实例化excel类*/

    $excel = new PHPExcel();

    /*实例化excel图片处理类*/

    $objDrawing = new PHPExcel_Worksheet_Drawing();

    phpexcel导出图片
  4. 3.

    /*设置文本对齐方式*/

    $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]");

    }

    phpexcel导出图片
  5. 4.

    /*设置表格数据*/

    $data = array(

    array('小王', '男', '20', 'CS12', 'test.jpg'),

    array('小李', '女', '21', 'CS12', 'test.jpg'),

    array('小周', '男', '22', 'CS12', 'test.jpg'),

    array('小赵', '女', '23', 'CS12', 'test.jpg'),

    array('小张', '男', '24', 'CS12', 'test.jpg')

    );

    phpexcel导出图片
  6. 5.

    /*填充表格内容*/

    for ($i = 0;$i < count($data);$i++) {

    $j = $i + 2;

    /*设置表格宽度*/

    $objActSheet->getColumnDimension("$letter[$i]")->setWidth(20);

    /*设置表格高度*/

    $excel->getActiveSheet()->getRowDimension($j)->setRowHeight(100);

    /*向每行单元格插入数据*/

    for ($row = 0;$row < count($data[$i]);$row++) {

    if ($row == (count($data[$i]) -1 )) {

    /*实例化插入图片类*/

    $objDrawing = new PHPExcel_Worksheet_Drawing();

    /*设置图片路径 切记:只能是本地图片*/

    $objDrawing->setPath($data[$i][$row]);

    /*设置图片高度*/

    $objDrawing->setHeight(100);

    /*设置图片要插入的单元格*/

    $objDrawing->setCoordinates("$letter[$row]$j");

    /*设置图片所在单元格的格式*/

    $objDrawing->setOffsetX(80);

    $objDrawing->setRotation(20);

    $objDrawing->getShadow()->setVisible(true);

    $objDrawing->getShadow()->setDirection(50);

    $objDrawing->setWorksheet($excel->getActiveSheet());

    continue;

    }

    $excel->getActiveSheet()->setCellValue("$letter[$row]$j","111");

    }

    }

    phpexcel导出图片
  7. 6.

    /*实例化excel输入类并完成输出excel文件*/

    $write = new PHPExcel_Writer_Excel5($excel);

    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="测试文件.xls"');

    header("Content-Transfer-Encoding:binary");

    $write->save('php://output');

    phpexcel导出图片
  8. 7.下面是结果:看完之后大家可能觉得美中不足的是图片没有上下居中,其实这个问题我查了一个多小时资料之后也没查到啥方法,于是乎放弃了,如果大家查到了相关的文档,希望可以分享到评论里边,帮助别人,快乐自己!

    phpexcel导出图片
    phpexcel导出图片
    phpexcel导出图片
  9. 9

    8.一点小补充:图片必须为本地图片,这里的本地指的是你服务器,如果看页面的源码不爽的话,我把源文件分享到了云盘,地址如下:

    http://pan.baidu.com/s/1ntNYGsh

  10. 文章来源:http://jingyan.baidu.com/article/4f7d5712aea37f1a201927d7.html

0 0
原创粉丝点击