基于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;}

				
时间: 2024-10-07 04:11:24

基于ThinkPHP开发的PHPExcel导出的相关文章

基于ThinkPHP开发的PHPExcel导入

首先,我们还是要导入PHPExcel类文件...至于怎么导入.可以参考我写的导出的那篇文章(http://www.cnblogs.com/hopelooking/p/6230303.html) 但是我们在做导入功能的时候用到的类文件可不是导出时用到的那个类文件,但是文件夹一层包一层,没办法那样一个一个引用,还好,有一个文件 也就是我们做导出的时候用到的这个文件,这个文件里面有几行代码我们有没有注意到??? 多了一行加载的文件! 是的,这个就是我们在做导入的时候需要的类文件 做完这一步以后其实还是

基于YII框架的PHPExcel导出

public function actionOutexceInventoryList(){        ob_end_clean();        ob_start();        /** PHPExcel */        //Yii::import('application.vendors.*');        include_once(dirname(dirname(__FILE__)).'/extensions/PHPExcel.php');        include_o

基于thinkphp开发的项目部署到由宝塔面板创建的LNMP服务器上解决路径出错问题

一. 环境与版本: 主机:amazon aws EC2主机 系统:Ubuntu 18.04.2 LTS (GNU/Linux 4.15.0-1039-aws x86_64) 面板:宝塔免费版 6.9.5 服务:Nginx 1.16, PHP 7.2, MySQL 5.7.22(运行在amazon的RDS上,没通过宝塔面板安装,本文讨论内容不涉及数据库) 程序:ThinkPHP 5.0.24 二. 部署过程 1. 在云端开通并启动主机,做一点点必要的升级和小配置(省略,找主机商网站). 2. 登录

iOS开发-博客导出工具开发教程(附带源码)

前言: 作为一名学生, 作为一名iOS开发学习者, 我个人浏览信息包括博客, 更多的选择移动终端.然而, csdn并没有现成的客户端(不过有个web版的). 之前曾经看到一款开源的导出工具, 但是它是基于Windows平台的.导出的也仅仅是PDF格式.而且, 对于文章的导出, 需要精确URL.无法做到边浏览别导出. 另外, 我想实现的是, 可以在没有网络的情况下, 浏览自己收藏的文章.并且, 对于自己收藏的文章, 可以分类管理. 最关键的是, 对于自己的文章, 可以做一个备份.我曾经遇到过这样一

thinkphp之Excel的导出

thinkphp之Excel的导出 Excel的导出步骤: 1.下载phpexcel包,置于以下thinkphp框架路径. 内部还有一个文件夹和一个php文件 2.创建excel对象并设置excel对象的属性(ExportALLAction.class.php ); 3.设置excel的行列样式(字体.高宽.颜色.边框.合并等) 4.绘制报表表头 5.将查询数据写入excel 6.设置excel的sheet的名称< 7.设置excel报表打开后初始的sheet 8.设置输出的excel的头参数及

关于PHPExcel导出Excel时身份证,数字会导出为科学计数的处理方法

原文:关于PHPExcel导出Excel时身份证,数字会导出为科学计数的处理方法 上次在开发一个项目时,用到PHPExcel导出数据,其中有导出身份证等长串数字时导出的Excel中显示为科学计数方式. 这种显示很不人性化而且量多了修改起来也很麻烦. 这是因为Excel处理数字里默认数字太长会转化为科学计数法,处理起来很简单,我们在导出时把数字转为字符串,Excel就不会识别为数字了,也就不会显示为科学计数方式. 我的处理方式是在变量后面加个空格,简单方便. $usercode .= ' '; $

第二章 基于JAX-WS开发Web services

基于JAX-WS开发Web services 这篇文章纯属搬砖. 转载于:http://www.ithov.com/linux/125942_4.shtml. Web Services 是一种面向服务的技术,通过标准的 Web 协议提供服务,目的是保证不同平台的应用服务可以互操作.依据 web services 规范实施的应用之间,无论它们所使用的语言. 平台或内部协议是什么,都可以相互交换数据,这就是 web services 的好处.本文选择 IBM WebSphere Applicatio

php利用phpexcel导出数据

php中利用phpexcel导出数据的实现代码.对phpexcel类库不熟悉的朋友,可以阅读下<phpexcel中文帮助手册>中的内容,具体实例大家可以phpexcel快速开发指南中的相关例子. 完整代码: public function export_data($data = array()) { # code... include_once(APP_PATH.'Tools/PHPExcel/Classes/PHPExcel/Writer/IWriter.php') ; include_on

基于DevExpress开发的GridView如何实现某一列的一行让用户可以从下列列表选择选项

在很多DevExpress的使用例子里面,我们可以看到,基于GridView实现的不同控件展示的时候,每一列的控件类型都是一样的,如果我要某一列的一行让用户可以从下列列表选择选项,而其他行不可选择,那我们可以实现这种效果吗,应该如何实现? 1.GridView实现的显示效果 例如下面的效果就是我希望达到的,在第一行的流程处理人列允许用户选择,其他行禁止用户选择. 单用户单击第一行的“流程处理人”列的时候,弹出一个列表供用户选择,选择后显示具体的人员的姓名即可. 2.功能实现具体步骤 实现上面所说