基于ThinkPHP开发的PHPExcel导出
首先我们需要去PHPExcel官网下载开源包
下载好了以后只需要把里面的classes文件夹解压出来就可以用了!
在ThinkPHP中,文件的命名空间还是很重要的,我试着按照其他的第三方命名写namespace但是还是不行,最后我是这么做的
第一步:重命名classes为Excel,并且将文件夹内的PHPExcel.php重命名成PHPExcel.class.php
然后放入到目录文件

然后在控制层导入,直接use的话是会报错找不到类文件的。。。也许是内核里面的路由问题,于是我是在实例化的时候写的详细地址居然可以出来了
$objPHPExcel = new \Org\Excel\PHPExcel(); 就是这样
但是这样类文件的一些方法是不可以用的,如果调用需要在方法前面加一个\
比如这样:
$objSheet->getStyle("A1:Z1")->getFill()->setFillType(\PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setARGB('#00FF00');//给单元格填充背景颜色
如下是具体代码:
//excel导出
public function excel(){
//查询sql生成数组
$loan = M("loan");
$data = $loan->select();
$objPHPExcel = new \Org\Excel\PHPExcel();//实例化类文件 等同于在桌面新建一个excel表格
$objSheet = $objPHPExcel->getActiveSheet();//获得当前活动sheet操作对象
$objSheet->setTitle('loan_info');//给当前活动sheet修改名称
$objSheet->getDefaultStyle()->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER)->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);//设置单元格垂直居中、水平居中
$objSheet->getStyle("A1:Z1")->getFont()->setName("微软雅黑")->setSize(10)->setBold(true);//设置单元格范围的字体、字体大小、加粗
$objSheet->getStyle("A1:Z1")->getFill()->setFillType(\PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setARGB('#00FF00');//给单元格填充背景颜色
//添加边框
$styleArray = array(
'borders' => array(
'outline' => array(
'style' => \PHPExcel_Style_Border::BORDER_THICK,
'color' => array('argb' => '#F0F8FF'),
),
),
);
$objSheet->getStyle("A1")->applyFromArray($styleArray);
$objSheet->getStyle("B1")->applyFromArray($styleArray);
$objSheet->getStyle("C1")->applyFromArray($styleArray);
$objSheet->getStyle("D1")->applyFromArray($styleArray);
$objSheet->getStyle("E1")->applyFromArray($styleArray);
$objSheet->getStyle("F1")->applyFromArray($styleArray);
$objSheet->getStyle("G1")->applyFromArray($styleArray);
$objSheet->getStyle("H1")->applyFromArray($styleArray);
$objSheet->getStyle("I1")->applyFromArray($styleArray);
$objSheet->getStyle("J1")->applyFromArray($styleArray);
$objSheet->getStyle("K1")->applyFromArray($styleArray);
$objSheet->getStyle("L1")->applyFromArray($styleArray);
$objSheet->getStyle("M1")->applyFromArray($styleArray);
$objSheet->getStyle("N1")->applyFromArray($styleArray);
$objSheet->getStyle("O1")->applyFromArray($styleArray);
$objSheet->getStyle("P1")->applyFromArray($styleArray);
$objSheet->getStyle("Q1")->applyFromArray($styleArray);
$objSheet->getStyle("R1")->applyFromArray($styleArray);
$objSheet->getStyle("S1")->applyFromArray($styleArray);
$objSheet->getStyle("T1")->applyFromArray($styleArray);
$objSheet->getStyle("U1")->applyFromArray($styleArray);
$objSheet->getStyle("V1")->applyFromArray($styleArray);
$objSheet->getStyle("W1")->applyFromArray($styleArray);
$objSheet->setCellValue("A1","ID")
->setCellValue("B1","公司名称")
->setCellValue("C1","公司LOGO")
->setCellValue("D1","链接地址")
->setCellValue("E1","贷款对应人群")
->setCellValue("F1","宣传语")
->setCellValue("G1","最小额度范围")
->setCellValue("H1","最大额度范围")
->setCellValue("I1","最小期限范围")
->setCellValue("J1","最大期限范围")
->setCellValue("K1","利率")
->setCellValue("L1","最快放款时间")
->setCellValue("M1","计息方式")
->setCellValue("N1","是否认证")
->setCellValue("O1","申请条件")
->setCellValue("P1","申请流程")
->setCellValue("Q1","申请所需材料")
->setCellValue("R1","申请时间")
->setCellValue("S1","更新时间")
->setCellValue("T1","成功贷款人数")
->setCellValue("U1","按点击收费金额")
->setCellValue("V1","是否上架")
->setCellValue("W1","显示序号排列");//给单元格填充相应的值
//循环填充
$j = 2;
foreach($data as $key => $val){
$objSheet->setCellValue("A".$j,$val['id'])
->setCellValue("B".$j,$val['corporate'])
->setCellValue("C".$j,$val['img'])
->setCellValue("D".$j,$val['corporate_url'])
->setCellValue("E".$j,$val['person'])
->setCellValue("F".$j,$val['propaganda'])
->setCellValue("G".$j,$val['xquota'])
->setCellValue("H".$j,$val['dquota'])
->setCellValue("I".$j,$val['xterm'])
->setCellValue("J".$j,$val['dterm'])
->setCellValue("K".$j,$val['rate'])
->setCellValue("L".$j,$val['qtime'])
->setCellValue("M".$j,$val['type'])
->setCellValue("N".$j,$val['authentication'])
->setCellValue("O".$j,$val['condition'])
->setCellValue("P".$j,$val['process'])
->setCellValue("Q".$j,$val['science'])
->setCellValueExplicit("R".$j,$val['apply_time'],\PHPExcel_Cell_DataType::TYPE_STRING)//设定日期固定的为数字合适不会成为官方看不懂的格式
->setCellValueExplicit("S".$j,$val['up_time'],\PHPExcel_Cell_DataType::TYPE_STRING)//设定日期固定的为数字合适不会成为官方看不懂的格式
->setCellValue("T".$j,$val['succ_person'])
->setCellValue("U".$j,$val['click_money'])
->setCellValue("V".$j,$val['is_shelves'])
->setCellValue("W".$j,$val['show_number']);
$j++;
}
//设置文件保存的命名、编码、以及开放保存路径权限
$fn= "loan_".time().".xls";
header('Content-Type: application/vnd.ms-excel; charset=utf-8');
header("Content-Disposition: attachment;filename=$fn");//告诉浏览器将要输出的名称
header('Cache-Control: max-age=0');//禁止缓存
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel5');//生成excel文件
$objWriter->save('php://output');//彻底开放保存路径
exit;
}

基于ThinkPHP开发的PHPExcel导出的更多相关文章
- 基于ThinkPHP开发的PHPExcel导入
首先,我们还是要导入PHPExcel类文件...至于怎么导入.可以参考我写的导出的那篇文章(http://www.cnblogs.com/hopelooking/p/6230303.html) 但是我 ...
- thinkphp中使用PHPEXCEL导出数据
thinkphp中导出二维数组到Excel 1.解决时间长度导致EXCEL出现###问题 2.解决长数值型 带来的科学记数法导出问题 订单号不再变为科学记数法 而是直接字符串类型 代码如下: < ...
- 基于thinkphp开发的项目部署到由宝塔面板创建的LNMP服务器上解决路径出错问题
一. 环境与版本: 主机:amazon aws EC2主机 系统:Ubuntu 18.04.2 LTS (GNU/Linux 4.15.0-1039-aws x86_64) 面板:宝塔免费版 6.9. ...
- 齐博软件 著名的老牌CMS开源系统 X1.0基于thinkphp开发的高性能免费开源PHP开放平台齐博x1.0基于thinkphp框架开发的高性能免费开源系统 主推圈子 论坛 预定拼团分销商城模块
齐博X1--标签变量大全 1.网站名称: {$webdb.webname} 2.网址: {$webdb[www_url]} {:get_url('home')} 3.网站SEO关键词: 首页:{$we ...
- 一个基于thinkphp的微信授权登陆功能
共享一份基于thinkphp开发的用户授权登陆的功能代码,本实例使用thinkphp的第三方微信公众平台PHP-SDK,地址https://github.com/dodgepudding/wechat ...
- SEO之基于thinkphp的URL伪静态
最近基于thinkphp开发了个导购网站,现在有时间,将遇到的伪静态问题整理下,与大家分享.1.设置URL伪静态在config.ini.php中设置,如果只想前台URL伪静态,那么只在前台的confi ...
- ThinkPhp 使用PhpExcel导出导入多语言文件
在ThinkPHP 里已经实现了多语言功能,只要在指定的目录下创建对应的语言文件并填充内容,即可实现多语言功能 而多语言的翻译却是一个很麻烦的事情,因为客户特定的行业问题导致我们翻译可能是不准确的 于 ...
- thinkphp使用PHPExcel导出
thinkphp3. 将PHPExcel下载包放在项目\ThinkPHP\Library\Vendor\PHPExcel thinkphp5 将PHPExcel下载包放在项目\vendor\PHPEx ...
- PHPExcel导出功能
对于第一次弄这个导出,总结下思路: 1.下载在http://phpexcel.codeplex.com/下载最新PHPExcel放到Vendor下,注意位置:ThinkPHP\Extend\Vendo ...
随机推荐
- hihoCoder 1185 连通性·三(Tarjan缩点+暴力DFS)
#1185 : 连通性·三 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 暑假到了!!小Hi和小Ho为了体验生活,来到了住在大草原的约翰家.今天一大早,约翰因为有事要出 ...
- Java实现MySQL数据库备份(一)
下班了,利用闲暇时间总结一下如何使用Java语言实现MySQL数据库备份: import java.io.BufferedReader; import java.io.File; import jav ...
- pptv泥够了!pptv“关闭”事件为营销炒作坐实!
昨天还让人心生怜悯的pptv聚力,今天下午2点07分又再一次发布微博,而几天发布的内容是see U again!再次证实了pptv昨天的“关闭”还是“倒闭”消息为营销炒作.不过马浩周要问了,真的要这么 ...
- 阿里云服务器Linux CentOS安装配置(八)nginx安装、配置、域名绑定
阿里云服务器Linux CentOS安装配置(八)nginx安装.配置.域名绑定 1.安装nginx yum -y install nginx 2.启动nginx service nginx star ...
- js获取modelandview的值
JS当中不能接收ModelAndView的返回值吗?一定要在JSP页面中才能接收吗? 1 方法一 [有效?] 可以的,跟el表达式访问方式一样. 示例代码,一个数据展示请求的Action中存入一个us ...
- js数组去重的hash方法
对于 JavaScript 数组去除重复项,现在有多种方法,其中一种是hash,如下: if (!Array.prototype.unique) { Array.prototype.unique = ...
- 使用postman发送数据并构建collections执行测试
1.安装 下载地址:https://www.getpostman.com/.直接安装,成功后在chorme的应用程序中会多出一个Postman.如果无法在google store上直接安装,可以下载. ...
- imx6 matrix keyboard
imx6需要添加4x4的矩阵键盘.本文记录添加方法. 参考链接 http://processors.wiki.ti.com/index.php/TI-Android-JB-PortingGuide h ...
- 第四篇:白话tornado源码之褪去模板外衣的前戏
加班程序员最辛苦,来张图醒醒脑吧! ... ... ... 好了,醒醒吧,回归现实看代码了!! 执行字符串表示的函数,并为该函数提供全局变量 本篇的内容从题目中就可以看出来,就是为之后剖析tornad ...
- java 之return
return关键词有两个用法,一方面制定一个方法返回什么值,另一方面导致当前方法退出.