zoukankan      html  css  js  c++  java
  • thinkphp5中使用PHPExcel

    thinkphp5中可以使用composer来获取第三方类库,使用起来特别方便,例如:可是使用composer下载PHPMailer,think-captcha(验证码)等等……

    接下来说一下怎么使用PHPExcel,这是一个很好用的第三方类库。

    1.使用composer下载PHPExcel,首先安装过composer之后,用dos命令行,引入到项目所在目录下,然后输入composer require phpexcel/phpexcel ,然后点回车键

    你会发现项目的目录中在vendor的目录下多了一个文件夹(phpexcel),这个文件夹中的东西就是要使用的php中的Excel表格操作

    2.在thinkphp中使用,大概分为四个步骤。

     

    最简单的生成Excel文件

    (1)首先第一步是:实例化phpexcel
    1. $objPHPExcel = new PHPExcel();  

    这里可能会遇到一个问题,报这样的错误。
     
    然后,搜索到这个文件把这一行去掉就ok。
    (2)获得当前活动sheet,因为Excel有一个默认的sheet。
    1. $objSheet = $objPHPExcel->getActiveSheet();  
    [php] view plain copy
     
    1. $objSheet ->setTitle("demo");//可以给sheet设置名称为"demo"  
    (3)<1>然后就是在表格中写入数据
    [php] view plain copy
     
    1. $objSheet->setCellValue("A1","姓名")->setCellValue("B1","分数");  
    2. $objSheet->setCellValue("A2","张三")->setCellValue("B2","100");  
    <2>还有一个方法是用数组
    [php] view plain copy
     
    1. $array = array(  
    2.     array(),  
    3.     array('姓名','分数'),  
    4.     array('张三','60'),  
    5.     array('李四','61'),  
    6.     array('王五','62'),  
    7. );  
    8. $objSheet -> fromArray($array);//数据较大时,不建议使用此方法,建议使用setCellValue()  
    (4)最后就是保存写好的数据
    1. $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');//生成一个Excel2007文件  
    2. $objWriter->save('E:/test.xlsx');//保存文件  

    从数据库中到导出文件

    [php] view plain copy
     
    1. $path = 'E:/';  
    2. $name = 'think_admin';  
    3. $objPHPExcel = new PHPExcel();  
    4. for ($i=1; $i < 3; $i++) {  
    5.     if ($i>1) {  
    6.         $objPHPExcel->createSheet();   
    7.     }  
    8.       
    9.     $objPHPExcel->setActiveSheetIndex($i-1);//把当前创建的sheet设置为活动sheet  
    10.     $objSheet = $objPHPExcel->getActiveSheet();//获得当前活动Sheet  
    11.     $objSheet->setTitle("user".$i);  
    12.   
    13.     if($i==1){  
    14.         $db_admin = db('admin')->where('sex','男')->select();  
    15.     }else{  
    16.         $db_admin = db('admin')->where('sex','女')->select();  
    17.     }  
    18.         $objSheet->setCellValue('A1','id')->setCellValue('B1','user')->setCellValue('C1','name')->setCellValue('D1','password')  
    19.     ->setCellValue('E1','imgpath')->setCellValue('F1','tel')->setCellValue('G1','sex')->setCellValue('H1','age');  
    20.     $j = 2;  
    21.     foreach ($db_admin as $key => $value) {  
    22.         $objSheet->setCellValue('A'.$j,$value['id'])->setCellValue('B'.$j,$value['user'])->setCellValue('C'.$j,$value['name'])  
    23.         ->setCellValue('D'.$j,$value['password'])  
    24.         ->setCellValue('E'.$j,$value['imgpath'])->setCellValue('F'.$j,$value['tel'])->setCellValue('G'.$j,$value['sex'])  
    25.         ->setCellValue('H'.$j,$value['age']);  
    26.         $j++;  
    27.     }  
    28. }  
    29. $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');  
    30. $objWriter->save($path.$name.'.xlsx');  

    在浏览器上输出Excel文件(下载)

    [php] view plain copy
     
    1. $filename = 'think_admin.xls';  
    2. $objPHPExcel = new PHPExcel();  
    3. for ($i=1; $i < 3; $i++) {  
    4. if ($i>1) {  
    5. $objPHPExcel->createSheet();  
    6. }  
    7. $objPHPExcel->setActiveSheetIndex($i-1);//把当前创建的sheet设置为活动sheet  
    8. $objSheet = $objPHPExcel->getActiveSheet();//获得当前活动Sheet  
    9. $objSheet->setTitle("user".$i);  
    10. if($i==1){  
    11. $db_admin = db('admin')->where('sex','男')->select();  
    12. }else{  
    13. $db_admin = db('admin')->where('sex','女')->select();  
    14. }  
    15. $objSheet->setCellValue('A1','id')->setCellValue('B1','user')->setCellValue('C1','name')->setCellValue('D1','password')  
    16. ->setCellValue('E1','imgpath')->setCellValue('F1','tel')->setCellValue('G1','sex')->setCellValue('H1','age');  
    17. $j = 2;  
    18. foreach ($db_admin as $key => $value) {  
    19. $objSheet->setCellValue('A'.$j,$value['id'])->setCellValue('B'.$j,$value['user'])->setCellValue('C'.$j,$value['name'])->setCellValue('D'.$j,$value['password'])  
    20. ->setCellValue('E'.$j,$value['imgpath'])->setCellValue('F'.$j,$value['tel'])->setCellValue('G'.$j,$value['sex'])->setCellValue('H'.$j,$value['age']);  
    21. $j++;  
    22. }  
    23. }  
    24. $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');  
    25. header('Content-Type: application/vnd.ms-excel');//告诉浏览器将要输出excel03文件  
    26. header('Content-Disposition: attachment;filename="'.$filename.'"');//告诉浏览器将输出文件的名称(文件下载)  
    27. header('Cache-Control: max-age=0');//禁止缓存  
    28. $objWriter->save("php://output");  

    转载地址:http://blog.csdn.net/Iloveyougirls/article/details/53212402

     如需转载请注明出处,https://www.cnblogs.com/zhuchenglin/p/6554542.html

  • 相关阅读:
    百度云推送
    web请求报出 “超过了最大请求长度” 【注意:重启IIS】
    页面多个Jquery版本共存的冲突问题,解决方法!
    Web Api 中使用 PCM TO WAV 的语音操作
    Web Api 如何做上传文件的单元测试
    那些年收集的前端学习资源
    原创: 做一款属于自己风格的音乐播放器 (HTML5的Audio新特性)
    Web Api 接口文档制作
    如何在Asp.Net WebApi接口中,验证请求参数中是否携带token标识!
    JavaScript 面试题,给大家补补基础,加加油,埋埋坑!
  • 原文地址:https://www.cnblogs.com/zhuchenglin/p/6554542.html
Copyright © 2011-2022 走看看