侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

thinkphp3.2中实现phpexcel导出带生成图片示例

ThinkPHP  /  管理员 发布于 8年前   198

首先下载PHPEXCEL  下载地址:http://phpexcel.codeplex.com/        https://github.com/PHPOffice/PHPExcel

把Classes目录下的文件(PHPExcel.php和PHPExcel文件夹),放到ThinkPHP\Library\Org\Util目录下

PHPExcel.php  改名为 :PHPExcel.class.php

// 导出exl  public function look_down(){    $id = I('get.id');    $m = M ('offer_goods');    $where['offer_id'] = $id;    $data = $m->field('goods_id,goods_sn,goods_name,barcode,goods_type,price')->select();         // 导出Exl    import("Org.Util.PHPExcel");    import("Org.Util.PHPExcel.Worksheet.Drawing");    import("Org.Util.PHPExcel.Writer.Excel2007");    $objPHPExcel = new \PHPExcel();         $objWriter = new \PHPExcel_Writer_Excel2007($objPHPExcel);       $objActSheet = $objPHPExcel->getActiveSheet();         // 水平居中(位置很重要,建议在最初始位置)    $objPHPExcel->setActiveSheetIndex(0)->getStyle('A')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);    $objPHPExcel->setActiveSheetIndex(0)->getStyle('B1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);    $objPHPExcel->setActiveSheetIndex(0)->getStyle('C')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);    $objPHPExcel->setActiveSheetIndex(0)->getStyle('D')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);    $objPHPExcel->setActiveSheetIndex(0)->getStyle('E')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);    $objPHPExcel->setActiveSheetIndex(0)->getStyle('F')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);         $objActSheet->setCellValue('A1', '商品货号');    $objActSheet->setCellValue('B1', '商品名称');    $objActSheet->setCellValue('C1', '商品图');    $objActSheet->setCellValue('D1', '商品条码');    $objActSheet->setCellValue('E1', '商品属性');    $objActSheet->setCellValue('F1', '报价(港币)');    // 设置个表格宽度    $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(16);    $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(80);    $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(15);    $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(20);    $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(12);    $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(12);         // 垂直居中    $objPHPExcel->getActiveSheet()->getStyle('A')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);    $objPHPExcel->getActiveSheet()->getStyle('B')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);    $objPHPExcel->getActiveSheet()->getStyle('D')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);    $objPHPExcel->getActiveSheet()->getStyle('E')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);    $objPHPExcel->getActiveSheet()->getStyle('F')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);         foreach($data as $k=>$v){      $k +=2;      $objActSheet->setCellValue('A'.$k, $v['goods_sn']);        $objActSheet->setCellValue('B'.$k, $v['goods_name']);                        $img = M('goods')->where('goods_id = '.$v['goods_id'])->field('goods_thumb')->find();      // 图片生成      $objDrawing[$k] = new \PHPExcel_Worksheet_Drawing();      $objDrawing[$k]->setPath('./Upload/'.$img['goods_thumb']);      // 设置宽度高度      $objDrawing[$k]->setHeight(80);//照片高度      $objDrawing[$k]->setWidth(80); //照片宽度      /*设置图片要插入的单元格*/      $objDrawing[$k]->setCoordinates('C'.$k);      // 图片偏移距离      $objDrawing[$k]->setOffsetX(12);      $objDrawing[$k]->setOffsetY(12);      $objDrawing[$k]->setWorksheet($objPHPExcel->getActiveSheet());             // 表格内容      $objActSheet->setCellValue('D'.$k, $v['barcode']);        $objActSheet->setCellValue('E'.$k, $v['goods_type']);        $objActSheet->setCellValue('F'.$k, $v['price']);               // 表格高度      $objActSheet->getRowDimension($k)->setRowHeight(80);           }         $fileName = '报价表';    $date = date("Y-m-d",time());    $fileName .= "_{$date}.xls";    $fileName = iconv("utf-8", "gb2312", $fileName);    //重命名表    // $objPHPExcel->getActiveSheet()->setTitle('test');    //设置活动单指数到第一个表,所以Excel打开这是第一个表    $objPHPExcel->setActiveSheetIndex(0);    header('Content-Type: application/vnd.ms-excel');    header("Content-Disposition: attachment;filename=\"$fileName\"");    header('Cache-Control: max-age=0');    $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');    $objWriter->save('php://output'); //文件通过浏览器下载    // END    } 

水平居中,垂直居中,高度 等设置。注意放的位置,如果你放在末尾,那么是下一样生效。放到头部,第一行生效(上面代码是第一行生效,如果放到foreach里面就是下一行生效)。

import介绍。import("Org.Util.PHPExcel.Writer.Excel2007"); 文件位置:Org\Util\PHPExcel\Writer\Excel2007.class.php

图片地址一定要是本地。objDrawing[ objDrawing[k]->setPath('./Upload/'.$img['goods_thumb']); 图片位置:安装目录/Upload/xxx

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

您可能感兴趣的文章:

  • PHPExcel读取EXCEL中的图片并保存到本地的方法
  • php判断上传的Excel文件中是否有图片及PHPExcel库认识
  • 利用PHPExcel实现Excel文件的写入和读取
  • PHPExcel简单读取excel文件示例
  • php读取EXCEL文件 php excelreader读取excel文件
  • php excel reader读取excel内容存入数据库实现代码
  • PHPExcel读取Excel文件的实现代码
  • PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)


  • 上一条:
    thinkphp Apache配置重启Apache1 restart 出错解决办法
    下一条:
    thinkphp修改配置进入默认首页的方法
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • thinkphp + mongodb项目中数据加载慢问题分析及解决(0个评论)
    • thinkphp6框架中封装redis操作类(0个评论)
    • thinkphp6框架中实现定时任务功能流程步骤(0个评论)
    • Thinkphp5.1框架中实现Session+Redis会话共享流程步骤(0个评论)
    • TP5框架版本5.0.10安全漏洞根据官方补丁修复,也是本站安全漏洞修复(0个评论)
    • 近期文章
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2017-07
    • 2017-08
    • 2017-09
    • 2017-10
    • 2017-12
    • 2018-01
    • 2018-02
    • 2020-03
    • 2021-07
    • 2021-12
    • 2022-05
    • 2022-06
    • 2022-09
    • 2023-01
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客