phpexcel: 数据导出

// 设置列名最多40个
        $cols = array(
            "A",
            "B",
            "C",
            "D",
            "E",
            "F",
            "G",
            "H",
            "I",
            "J",
            "K",
            "L",
            "M",
            "N",
            "O",
            "P",
            "Q",
            "R",
            "S",
            "T",
            "U",
            "V",
            "W",
            "X",
            "Y",
            "Z",
            "AA",
            "AB",
            "AC",
            "AD",
            "AE",
            "AF",
            "AG",
            "AH",
            "AI",
            "AJ",
            "AK",
            "AL",
            "AM",
            "AN",
            "AO",
            "AP",
            "AQ",
            "AR",
            "AS",
            "AT",
            "AU",
            "AV",
            "AW",
            "AX",
            "AY",
            "AZ",
            "BA",
            "BB",
            "BC",
            "BD",
            "BE"
        );
        // 设置行宽
        $col_width = 25;
        $excelpath = dirname(Yii::$app->basePath).DIRECTORY_SEPARATOR.'weixin'.DIRECTORY_SEPARATOR.'phpexcel'.DIRECTORY_SEPARATOR;
        include_once $excelpath . 'PHPExcel.php';
        include_once $excelpath . 'PHPExcel'.DIRECTORY_SEPARATOR.'IOFactory.php';
        $excel     = new PHPExcel();

        //设置Excel文件元数据
        $excel->getProperties()->setTitle($title)->setDescription("none");

        //默认列样式
        $style = array(
            'font'      => array('bold' => true, 'color' => array('argb' => '00000000')),
            'alignment' => array('horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER),
        );
        //设置列宽度
        foreach ($cols as $col) {
            $excel->getActiveSheet()->getColumnDimension($col)->setWidth($col_width);
        }
        //设置基础表头信息
        $sheet = $excel->setActiveSheetIndex(0);
        foreach ($tab as $k => $v) {
            $sheet->setCellValue($cols[$k] . '1', $v);
        }

        // 设置内容
        foreach($data as $k=>$val){
            $rows = $k+2;
            $j = 0;
            foreach($val as $i=>$v){
                if($i == 'GENDER' && $v ==0 )
                {
                    $v='男';
                }else if($i == 'GENDER' && $v ==1){
                    $v='女';
                }
                if($i == 'IDCARD')
                {
                    $v="'".$v;
                }

                $sheet->setCellValue($cols[$j] . $rows, $v);
                if(is_numeric($v)){
                    $excel->getActiveSheet()->getStyle($cols[$j] . $rows)->getNumberFormat()->setFormatCode("@");
                }
                $j++;
            }
        }



        $excel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_PORTRAIT);
        $excel->getActiveSheet()->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4);
        $objWriter = PHPExcel_IOFactory::createWriter($excel, 'Excel2007');
        $objWriter->setOffice2003Compatibility(true);
        header('Content-Type: application/vnd.ms-excel');
        header('Content-Disposition: attachment;filename="' . $title . '.xlsx"');
        header('Cache-Control: max-age=0');
        $objWriter->save('php://output');

  

原文地址:https://www.cnblogs.com/achengmu/p/6830888.html