zoukankan      html  css  js  c++  java
  • 基于ThinkPHP开发的PHPExcel导出

    首先我们需要去PHPExcel官网下载开源包

    下载好了以后只需要把里面的classes文件夹解压出来就可以用了!

    当然,在处理的数据量庞大的时候就会报错,提示你看nginx日志什么的,这个时候你需要检查php.ini中的memory_limit,如果是128什么的比较小的数字就改大一点,改成512,就可以解决了~

    在ThinkPHP中,文件的命名空间还是很重要的,我试着按照其他的第三方命名写namespace但是还是不行,最后我是这么做的

    第一步:重命名classes为Excel,并且将文件夹内的PHPExcel.php重命名成PHPExcel.class.php

    然后放入到目录文件

    然后在控制层导入,直接use的话是会报错找不到类文件的。。。也许是内核里面的路由问题,于是我是在实例化的时候写的详细地址居然可以出来了

    $objPHPExcel = new OrgExcelPHPExcel();   就是这样

    但是这样类文件的一些方法是不可以用的,如果调用需要在方法前面加一个

    比如这样:
    $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 OrgExcelPHPExcel();//实例化类文件 等同于在桌面新建一个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;
    }
    
    

  • 相关阅读:
    分享诗集中国原创诗歌创作分享中心,欢迎博客园喜欢诗词的加入【诗词在线】
    转让上海水族馆票【吐血转让】08年10月有效【100¥】
    winform 里Control.Margin 属性到底是干嘛的?
    亚交联盟注册指南
    sqlserver 替换回车换行
    如何配置 imail 中域名的MX记录
    张良、萧何与韩信:汉初三杰悲情录[转]
    FBD内存全局缓冲内存 比dd2 ecc还要好啊。服务器内存和普通PC内存的区别[转载]
    脆弱的ASP.NET AJAX
    无法连接到服务器。 帐户: 'mail.bb.cn', 服务器: '*******', 协议: SMTP, 端口: 25, 安全(SSL): 否, 套接字错误: 10061, 错误号: 0x800CCC0E
  • 原文地址:https://www.cnblogs.com/findher/p/10610310.html
Copyright © 2011-2022 走看看