首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >thinkphp5中使用PHPExcel(转载)

thinkphp5中使用PHPExcel(转载)

作者头像
lin_zone
发布2018-08-15 10:44:25
5860
发布2018-08-15 10:44:25
举报
文章被收录于专栏:LIN_ZONELIN_ZONELIN_ZONE
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

[php] view plain copy

  1. $objPHPExcel = new \PHPExcel();   这里可能会遇到一个问题,报这样的错误。

然后,搜索到这个文件把这一行去掉就ok。

(2)获得当前活动sheet,因为Excel有一个默认的sheet。

[php] view plain copy

  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)最后就是保存写好的数据

[php] view plain copy

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-03-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • thinkphp5中可以使用composer来获取第三方类库,使用起来特别方便,例如:可是使用composer下载PHPMailer,think-captcha(验证码)等等……
  • 1.使用composer下载PHPExcel,首先安装过composer之后,用dos命令行,引入到项目所在目录下,然后输入composer require phpexcel/phpexcel ,然后点回车键
  • 2.在thinkphp中使用,大概分为四个步骤。
  • 最简单的生成Excel文件
  • 从数据库中到导出文件
  • 在浏览器上输出Excel文件(下载)
相关产品与服务
验证码
腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档