ThinkPHP使用PHPexcel导出excel文件(已封装的输出类)

来源:互联网 发布:淘宝实木家具骗局真缘 编辑:程序博客网 时间:2024/05/17 18:48
<?php/** *PHPExcel类 */namespace Admin\Controller;use Think\Controller;class PHPExcelController extends CommonController{  /**   * 导出Excel文件   * @param  [type] $data [数据]   * @param  [type] $firstSheet [表格第一行的数据]   * @return [type]       [description]   */  public function outPutExcel($data,$firstSheet){    Vendor("Classes.PHPExcel");//导入excel类    $PHPExcel = new \PHPExcel();//创建一个对象    $PHPExcel->createSheet();//创建新的内置表    $PHPExcel->setActiveSheetIndex(0);//把新创建的sheet设定为当前活动sheet    $objSheet=$PHPExcel->getActiveSheet();//获取当前活动的sheet    //循环填充第一行数据    $j=0;    foreach (range('A','Z') as $value) {      if (!empty($firstSheet[$j])) {        $objSheet->setCellValue("{$value}1","{$firstSheet[$j]}");        $j++;      }    }    //循环填充数据    $i=1;//从第一行开始的表格    foreach ($data as $key => $value) {         $i++;         $objSheet->setCellValue("A".$i,$i-1)             ->setCellValue("B".$i,"{$value['passengerName']}")             ->setCellValue("C".$i,"{$value['passengerPhone']}")             ->setCellValue("D".$i,"{$value['busGoTimeWord']}")             ->setCellValue('E'.$i,"{$value['busInfo']}")             ->setCellValue("F".$i,"{$value['bookingWord']}")             ->setCellValue("G".$i,"{$value['bookingTime']}")             ->setCellValue("H".$i,"{$value['status']}");    }    //设置宽    $objSheet->getColumnDimension('C')->setWidth(15);    $objSheet->getColumnDimension('D')->setWidth(23);    $objSheet->getColumnDimension('E')->setWidth(42);    $objSheet->getColumnDimension('F')->setWidth(20);    $objSheet->getColumnDimension('G')->setWidth(18);    $objWriter= \PHPExcel_IOFactory::createWriter($PHPExcel,'Excel2007');//生成excel文件    $this->outPut("名单.xlsx","Excel2007");    $objWriter->save("php://output");//输出浏览器  }  /**   * 输出浏览器   * @param  [type] $filename [文件名]   * @param  [type] $type     [文件类型]   * @return [type]           [description]   */  private function outPut($filename,$type){    if($type=="Excel5"){        header('Content-Type: application/vnd.ms-excel');//excel03文件    }else{        header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');//excel07文件    }    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');//excel07文件    header('Content-Disposition: attachment;filename="'.$filename.'"');//输出文件的名称    header('Cache-Control: max-age=0');//禁止缓存  }}?>

0 0
原创粉丝点击