php导出excel

sanlanlan 2019-3-21 标签: PHP 浏览:1909 评论:0

利用php导出excel表格是经常在工作中经常会使用到的。

结合YII框架实现excel导出的一个例子。


1:下载PHPExcel包
官网地址:http://www.codeplex.com/PHPExcel

也可以去github下载

2.把包引进你的项目,只用Classes这个目录就好,其他的没用


666.png


3.把基类文件PHPExcel.php包含进来就可以使用了,建议是包含到项目入口,这样所有的都可以使用

require (dirname(__FILE__).'/../../Classes/PHPExcel.php'); //根据自己具体的路径


4.生成excel,并导出

function exportExcelData (){

$objPHPExcel = new PHPExcel();

// Set document properties
    $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
        ->setLastModifiedBy("Maarten Balliauw")
        ->setTitle("PHPExcel Test Document")
        ->setSubject("PHPExcel Test Document")
        ->setDescription("Test document for PHPExcel, generated using PHP classes.")
        ->setKeywords("office PHPExcel php")
        ->setCategory("Test result file");


    // Set default font
$objPHPExcel->getDefaultStyle()->getFont()->setName('Arial')->setSize(10);

$objPHPExcel->setActiveSheetIndex(0);

//定义excel第一行的头
$header= ['name','address','sex']
$n = 0;
    foreach($header as $head){
        $row = PHPExcel_Cell::stringFromColumnIndex($n);
        $objPHPExcel->setActiveSheetIndex(0)->setCellValue($row.'1', $head);
        $n++;
    }

//$info 主体数据
    $c = 2;
    foreach($info as $rows_array){
        $s = 0;
        foreach($rows_array as $row_value){
            $b = PHPExcel_Cell::stringFromColumnIndex($s);
            $objPHPExcel->getActiveSheet()->setCellValue($b.$c, $rows_value);
            $s++;
        }
        $c++;
    }

    //设置excel的相关属性,根据需要添加
    $objPHPExcel->getActiveSheet()->setCellValue('A8',"Hello\nWorld"); //换行
    $objPHPExcel->getActiveSheet()->getRowDimension(8)->setRowHeight(-1);  //高度
    $objPHPExcel->getActiveSheet()->getColumnDimension($k)->setWidth('A8');  //宽度 
    $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true); 

    $objectPHPExcel->getActiveSheet()->getStyle('B3:G3')->getFill()
                             ->setFillType(PHPExcel_Style_Fill::FILL_SOLID)
                            ->getStartColor()->setARGB('FF66CCCC'); //颜色

    $objPHPExcel->getActiveSheet()->getStyle($center)->getAlignment()

          ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //居中

    // Rename worksheet
    $objPHPExcel->getActiveSheet()->setTitle('test');


    //生成Excel,并提示下载或打开
    ob_end_clean();
    ob_start();

    //方式1:
    $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
    header("Pragma:public");
    header("Content-Type:application/x-msexecl;name='.$filename.'.xlsx'");
    header("Content-Disposition:inline;filename='.$filename.'.xlsx'");
    $objWriter->save("php://output");
    
    //方式2:
    header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
    header("Content-Disposition: attachment;filename={$fileName}");
    header("Cache-Control: max-age=0");
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
    $objWriter->save("php://output");

    //方式3:
    header("Content-Type : application/vnd.ms-excel");
    header("Content-Disposition:attachment;filename=test表-.xlsx");
    $objWriter= PHPExcel_IOFactory::createWriter($objectPHPExcel,'Excel2007');
    $objWriter->save("php://output");


}
    



本文相关标签: php excel yii

发表评论: