ThinkPHP用phpexcel导出excel

public function haha($list){

 Vendor('PHPExcel.PHPExcel');

$objPHPExcel = new PHPExcel();

        $objPHPExcel->getProperties()->setCreator("ctos")

            ->setLastModifiedBy("ctos")

            ->setTitle("Office 2007 XLSX Test Document")

            ->setSubject("Office 2007 XLSX Test Document")

            ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")

            ->setKeywords("office 2007 openxml php")

            ->setCategory("Test result file");

        $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(30);

        $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(30);

        $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(25);

        $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(12);

        $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(50);

        $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(10);

        $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(50);   

        //设置行高度

        $objPHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(22);

        $objPHPExcel->getActiveSheet()->getRowDimension('2')->setRowHeight(20);

        //set font size bold

        $objPHPExcel->getActiveSheet()->getDefaultStyle()->getFont()->setSize(10);

        $objPHPExcel->getActiveSheet()->getStyle('A2:G2')->getFont()->setBold(true);

        $objPHPExcel->getActiveSheet()->getStyle('A2:G2')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);

        $objPHPExcel->getActiveSheet()->getStyle('A2:G2')->getBorders()->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);

        //设置水平居中

        $objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);

        $objPHPExcel->getActiveSheet()->getStyle('A')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

        $objPHPExcel->getActiveSheet()->getStyle('B')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

        $objPHPExcel->getActiveSheet()->getStyle('D')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

        $objPHPExcel->getActiveSheet()->getStyle('F')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

        $objPHPExcel->getActiveSheet()->getStyle('G')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);  

        //合并cell

        $objPHPExcel->getActiveSheet()->mergeCells('A1:J1');

        // set table header content

        $objPHPExcel->setActiveSheetIndex(0)

            ->setCellValue('A1', '消费数据统计:'.date('Y-m-d H:i:s'))

            ->setCellValue('A2', '关键词')

            ->setCellValue('B2', '排名')

            ->setCellValue('C2', '价格')

            ->setCellValue('D2', '用户名')

            ->setCellValue('E2', '网址')

            ->setCellValue('F2', '计费引擎')

            ->setCellValue('G2', '计费时间');      

        // Miscellaneous glyphs, UTF-8

        for($i=0;$i<count($list)-1;$i++){

            $objPHPExcel->getActiveSheet(0)->setCellValue('A'.($i+3), $list[$i]['keyword']);

            $objPHPExcel->getActiveSheet(0)->setCellValue('B'.($i+3), $list[$i]['listnum']);

            $objPHPExcel->getActiveSheet(0)->setCellValue('C'.($i+3), $list[$i]['money']);

            $objPHPExcel->getActiveSheet(0)->setCellValue('D'.($i+3), $list[$i]['username']);

            $objPHPExcel->getActiveSheet(0)->setCellValue('E'.($i+3), $list[$i]['website']);

            $objPHPExcel->getActiveSheet(0)->setCellValue('F'.($i+3), $list[$i]['yinqing']);

            $objPHPExcel->getActiveSheet(0)->setCellValue('G'.($i+3), $list[$i]['addtime']);         

            $objPHPExcel->getActiveSheet()->getStyle('A'.($i+3).':G'.($i+3))->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);

            $objPHPExcel->getActiveSheet()->getStyle('A'.($i+3).':G'.($i+3))->getBorders()->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);

            $objPHPExcel->getActiveSheet()->getRowDimension($i+3)->setRowHeight(16);

        }

        //  sheet命名

        $objPHPExcel->getActiveSheet()->setTitle('消费列表');   

        // Set active sheet index to the first sheet, so Excel opens this as the first sheet

        $objPHPExcel->setActiveSheetIndex(0); 

        $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);

// Set active sheet index to the first sheet, so Excel opens this as the first sheet

$objPHPExcel->setActiveSheetIndex(0);

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');

// Redirect output to a client’s web browser (Excel2007)

 /* 生成到浏览器,提供下载 */ 

ob_end_clean();  //清空缓存  

    header("Pragma: public");

    header("Expires: 0");

    header("Cache-Control:must-revalidate,post-check=0,pre-check=0");

    header("Content-Type:application/force-download");

    header("Content-Type:application/vnd.ms-execl");

    header("Content-Type:application/octet-stream");

    header("Content-Type:application/download");

    header('Content-Disposition:attachment;filename="1.xlsx"');

    header("Content-Transfer-Encoding:binary"); 

    $objWriter->save('php://output');

exit;

}


你可能感兴趣的:(ThinkPHP用phpexcel导出excel)