Thinkphp3.2 PHPexecl 导出 代码案例

2019-11-26 13:30:37  阅读 36 次 评论 0 条

1、下载phpexecl 放入到tp里边。

路径如下:项目根目录\ThinkPHP\Library\Org\Util

Thinkphp3.2 PHPexecl 导出

 

2 、PHP 代码部分

封装一个方法

  1. private  function getExcel($fileName,$headArr,$data){

  2. //导入PHPExcel类库,因为PHPExcel没有用命名空间,只能inport导入

  3.         import("Org.Util.PHPExcel");

  4.         import("Org.Util.PHPExcel.Writer.Excel5");

  5.         import("Org.Util.PHPExcel.IOFactory.php");

  6. $date = date("Y_m_d",time());

  7. $fileName .= "_{$date}.xls";

  8. //创建PHPExcel对象,注意,不能少了\

  9. $objPHPExcel = new \PHPExcel();

  10. $objProps = $objPHPExcel->getProperties();

  11. //设置表头

  12. $key = ord("A");

  13. //print_r($headArr);exit;

  14. foreach($headArr as $v){

  15. $colum = chr($key);

  16. $objPHPExcel->setActiveSheetIndex(0) ->setCellValue($colum.'1', $v);

  17. $objPHPExcel->setActiveSheetIndex(0) ->setCellValue($colum.'1', $v);

  18. $key += 1;

  19.         }

  20. $column = 2;

  21. $objActSheet = $objPHPExcel->getActiveSheet();

  22. //print_r($data);exit;

  23. foreach($data as $key => $rows){ //行写入

  24. $span = ord("A");

  25. foreach($rows as $keyName=>$value){// 列写入

  26. $j = chr($span);

  27. $objActSheet->setCellValue($j.$column$value);

  28. $span++;

  29.             }

  30. $column++;

  31.         }

  32. $fileName = iconv("utf-8""gb2312"$fileName);

  33. //重命名表

  34. //$objPHPExcel->getActiveSheet()->setTitle('test');

  35. //设置活动单指数到第一个表,所以Excel打开这是第一个表

  36. $objPHPExcel->setActiveSheetIndex(0);

  37.         ob_end_clean();//清除缓冲区,避免乱码

  38.         header('Content-Type: application/vnd.ms-excel');

  39.         header("Content-Disposition: attachment;filename=\"$fileName\"");

  40.         header('Cache-Control: max-age=0');

  41. $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');

  42. $objWriter->save('php://output'); //文件通过浏览器下载

  43. exit;

  44.     }

 

数据导出方法

  1. public function index(){

  2.     $user=M('table');

  3.     $data=$user->select();

  4.     foreach ($data as $key => $value) {

  5.         $data[$key][id]=$value['id'];

  6.         $data[$key][name]=$value['name'];

  7.         $data[$key][sex]=$value['sex'];

  8.         $data[$key][content]=$value['content'];

  9.     }

  10.     foreach ($data as $filed => $value) {

  11.        if($filed== 'id'){$headArr[]='序号';}

  12.        if($filed== 'name'){$headArr[]='名字';}

  13.        if($filed== 'sex'){$headArr[]='性别';}

  14.        if($filed== 'content'){$headArr[]='备注';}

  15.    }


  16.    $filename="测试";  //文件名字

  17.    $this->getExcel($filename,$headArr,$data);


  18.     }

 

3、直接访问index方法 就ok了!


本文地址:http://daiguohui.com/post/9.html
版权声明:本文为原创文章,版权归 daiguohui 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?