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();
  1. $objSheet ->setTitle("demo");//可以给sheet设置名称为"demo"

(3)<1>然后就是在表格中写入数据

  1. $objSheet->setCellValue("A1","姓名")->setCellValue("B1","分数");
  2. $objSheet->setCellValue("A2","张三")->setCellValue("B2","100");
<2>还有一个方法是用数组
  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');//保存文件

从数据库中到导出文件

  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文件(下载)

  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

thinkphp5中使用PHPExcel(转载)的更多相关文章

  1. thinkphp5中使用phpmailer实现发送邮件功能(转载)

    一.开启SMTP服务(使用php发送邮件需要用到SMTP服务,这里以163邮箱的SMTP服务为例). 1.登录163邮箱,在首页上找到“设置”. 2.选择开启的服务,一般都全选,POP3/SMTP/I ...

  2. php中使用PHPExcel操作excel(xls)文件

    读取中文的xls.csv文件会有问题,网上找了下资料,发现PHPExcel类库好用,官网地址:http://phpexcel.codeplex.com/ 1.读取xls文件内容  代码如下 复制代码 ...

  3. tp5.0中使用PHPexcel,以及Loader的一些问题

    在5.0中使用PHPexcel遇到一些问题,记录一下方便以后查看. 非使用PHPexcel的方法: 参考:http://blog.csdn.net/sinat_35861727/article/det ...

  4. thinkphp5中如何使用 usort

    thinkphp5中如何使用 usort 一.总结 一句话总结:其实比较函数加上命名空间就好啦,不然找不到 比较函数加命名空间 数组做usort的第二个参数 usort($question_list, ...

  5. git在eclipse中的配置 转载

    git在eclipse中的配置 转载 一_安装EGIT插件 http://download.eclipse.org/egit/updates/ 或者使用Eclipse Marketplace,搜索EG ...

  6. thinkphp5中的配置如何使用

    thinkphp5中的配置如何使用 一.总结 一句话总结:先加载配置,然后读取配置即可 加载配置 读取配置 Config::load(APP_PATH.'fry_config.php');\\加载配置 ...

  7. thinkphp5中的一些关于命名空间的tisp

    1.thinkphp5中公共函数文件common中,不需要use,也可以直接使用vendor中的类文件. 2.在类前面的反斜杠作用是,直接使用最外层的命名空间,有时不想use某个X类,却想使用X类时, ...

  8. C#高级编程六十九天----DLR简介 .在.NET中使用DLR(转载) 我也来说说Dynamic

    DLR 一.近年来,在TIOBE公司每个月发布的编程语言排行榜中,C#总是能挤进前十名,而在最近十年来,C#总体上呈现上升的趋势.C#能取得这样的成绩,有很多因素,其中它在语言特性上的锐意进取让人印象 ...

  9. C# json反序列化 对象中嵌套数组 (转载) 可能会导致循环或多重级联路径。请指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。

    C# json反序列化 对象中嵌套数组 (转载)   看图: 这里可以看到是二层嵌套!!使用C#如何实现?? 思路:使用list集合实现 → 建立类 → list集合 → 微软的   Newtonso ...

随机推荐

  1. hadoop ha 读取 activce状态的活动节点

    方式一 package com.xxx.hadoop; import com.sun.demo.jvmti.hprof.Tracker; import com.sun.xml.bind.util.Wh ...

  2. MFC中使用ATL报错:error C4430: missing type specifier - int assumed. Note: C++ does not support default-int

    我在MFC中使用ATL函数A2W的时候报如下的错误: error C4430: missing type specifier - int assumed. Note: C++ does not sup ...

  3. notepad++使用收集

    一. 列编辑: 按住alt+鼠标纵向选中:alt+shift+箭头纵向或者横向选中. 列块编辑(编辑->列块编辑),实现跨步增加数字写入或者补0写入. 二. 多行变一行: 1.按Ctrl+F,弹 ...

  4. 【算法随记】Canny边缘检测算法实现和优化分析。

    以前的博文大部分都写的非常详细,有很多分析过程,不过写起来确实很累人,一般一篇好的文章要整理个三四天,但是,时间越来越紧张,后续的一些算法可能就以随记的方式,把实现过程的一些比较容易出错和有价值的细节 ...

  5. python pip 安装包报 编码问题

    好久不玩 TF 了, 今天尝试了一个案例,发现要安装module , 就搞了一下, 发现要先安装 base , 安装过程有遇到好多问题, 就写写, 将其中解决过程记录下来. 1. 保存,编码问题 Un ...

  6. ubuntu intel网卡驱动安装(华硕B250F GAMING主板 )

    jikexianfeng@jikexianfeng:~$ sudo sudo lspci -knn :]: Intel Corporation Device [:591f] (rev ) Subsys ...

  7. 16.翻译系列:EF 6 Code -First中使用存储过程【EF 6 Code-First系列】

    原文链接:https://www.entityframeworktutorial.net/entityframework6/code-first-insert-update-delete-stored ...

  8. Spring Boot 2.x 学习专栏

    Spring Boot 2.0 入门指南 Spring Boot 2.0 返回JSP页面实战 Spring Boot 2.0 热部署指南 Spring Boot 2.0 整合FreeMarker模板引 ...

  9. Atitti 创业团队vs打工的团队 attilax总结

    Atitti 创业团队vs打工的团队 attilax总结 创业公司的性质与特点  热情,创新,效率 ,使命 为什么阿里员工很热情?因为他们大概都知道公司要做什么事情,也知道公司的使命.他们经常会跳出来 ...

  10. iScroll的使用

    CDN: <script src="//ossweb-img.qq.com/images/js/iscroll_library/iscroll-5.2.0.js">&l ...