php excel导出

/**
 * 导出节目单
 */
public function programExport_ExcelAction($data,$catid)
{
    require_once dirname(__FILE__) . '/PHPExcel.class.php';
    $sheetname = 'sheet1';
    $catname = $this->category_cache[$catid]['catname'];
    $savefile = $catname . "节目单";
    //设置表格头部
    $title = array('ID', '标题', '推荐','资源状态','栏目','版权上线时间','版权下线时间','版权到期时间','审核状态','发布人','更新时间'); //设置要导出excel的表头
    $objPHPExcel = new PHPExcel();
    //设置列头标题
    for ($i = 0; $i < count($title); $i++) {
        $alpha = chr(65 + $i);
        $objPHPExcel->getActiveSheet()->setCellValue($alpha.'1', $title[$i]);
        $objPHPExcel->getActiveSheet()->getColumnDimension($alpha)->setWidth(20);//设置列宽
        $objPHPExcel->getActiveSheet()->getStyle($alpha)->getAlignment()->setWrapText(true); //单元宽度自适应
        $objPHPExcel->getActiveSheet()->getStyle($alpha . '1')->getFont()->setName("Candara");  //设置字体
        $objPHPExcel->getActiveSheet()->getStyle($alpha . '1')->getFont()->setSize(12);  //设置大小
        $objPHPExcel->getActiveSheet()->getStyle($alpha . '1')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_BLACK); //设置颜色
        $objPHPExcel->getActiveSheet()->getStyle($alpha . '1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //水平居中
        $objPHPExcel->getActiveSheet()->getStyle($alpha . '1')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); //垂直居中
        $objPHPExcel->getActiveSheet()->getStyle($alpha . '1')->getFont()->setBold(true); //加粗
        $objPHPExcel->getActiveSheet()->getStyle($alpha.'1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);//设置颜色
        $objPHPExcel->getActiveSheet()->getStyle($alpha.'1')->getFill()->getStartColor()->setARGB('FF97BAE5');
        $objPHPExcel->getActiveSheet()->getStyle($alpha)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //水平居中
        $objPHPExcel->getActiveSheet()->getStyle($alpha)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); //垂直居中
    }
    for($j = 0;$j<count($data);$j++){
        $z = $j + 2;
        $objPHPExcel->getActiveSheet()->setCellValue('A'.$z, $data[$j]['id']);
        $objPHPExcel->getActiveSheet()->setCellValue('B'.$z, $data[$j]['title']);
        //推荐
        $content_model = get_cache('content_model');
        $content_model = $content_model[$this->category_cache[$catid]['modelid']][fields];
        $tuijianarr = $content_model['shouyetuijian'][setting];//地区的设置
        $tuijianarr = string2array($tuijianarr);//把文本专为数组
        $tuijianarr = explode(chr(13), $tuijianarr[content]);//分割数组 分割条件是一行一个
        //分解数组
        $tuijian = string2array($data[$j]['shouyetuijian']);
        $shouyetuijian = '';
        foreach ($tuijianarr as $qt) {
            list($select_name, $select_value) = explode('|', $qt);
            if (in_array($select_value, $tuijian) && $select_value != -1) {
                $shouyetuijian .= ' '.$select_name;
            }
        }
        $objPHPExcel->getActiveSheet()->setCellValue('C'.$z,$shouyetuijian );
        //资源状态
        if($data[$j]['isonline'] == '0'){
            $isonline = '已上架';
        }else if($data[$j]['isonline'] == '1'){
            $isonline = '已下架';
        }else if($data[$j]['isonline'] == '3'){
            $isonline = '';
        }
        $objPHPExcel->getActiveSheet()->setCellValue('D'.$z, $isonline);
        $objPHPExcel->getActiveSheet()->setCellValue('E'.$z, $catname);
        //版权上线时间
        if($data[$j]['uponlinetime']){
            $uponlinetime = date('Y-m-d', $data[$j]['uponlinetime']);
        }else{
            $uponlinetime = '无';
        }
        $objPHPExcel->getActiveSheet()->setCellValue('F'.$z, $uponlinetime);
        //版权下线时间
        if($data[$j]['downonlinetime']){
            $downonlinetime = date('Y-m-d', $data[$j]['downonlinetime']);
        }else{
            $downonlinetime = '无';
        }
        $objPHPExcel->getActiveSheet()->setCellValue('G'.$z, $downonlinetime);
        //版权到期时间
        if($data[$j]['timeoff']){
            $timeoff = $data[$j]['timeoff'];
        }else{
            $timeoff = '无';
        }
        $objPHPExcel->getActiveSheet()->setCellValue('H'.$z, $timeoff);
        //审核状态
        if(!$data[$j]['aduitstate']){
            $aduitstate = '未审核';
        }else if($data[$j]['aduitstate'] == '1'){
            $aduitstate = '审核成功';
        }else if($data[$j]['aduitstate'] == '2'){
            $aduitstate = '待修改';
        }
        $objPHPExcel->getActiveSheet()->setCellValue('I'.$z, $aduitstate);
        $objPHPExcel->getActiveSheet()->setCellValue('J'.$z, $data[$j]['username']);
        $objPHPExcel->getActiveSheet()->setCellValue('K'.$z, date('Y-m-d', $data[$j]['time']));
    }

    $objPHPExcel->getActiveSheet()->setTitle($sheetname); //题目
    $objPHPExcel->setActiveSheetIndex(0); //设置当前的sheet
    header('Content-Type: application/vnd.ms-excel');
    header('Content-Disposition: attachment;filename="' . $savefile . '.xls"');//文件名称
    header('Cache-Control: max-age=0');
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); //Excel5
    $objWriter->save('php://output');
}
上一篇:php导出excel封装类


下一篇:JavaScript-如何使基于网络的“表格”选择得像电子表格一样? (矩形面积与行换行选择)