phpexcel 导出通用文件例子

phpexcel导出通用文件

/*客户端代码*/      

$field = array
        (
            'number'=>'序号',
            'consignee'=>'客户',
            'add_time'=>'销售日期',
        );

$data=array(array
        (
            'number'=>'10',
            'consignee'=>'张三',
            'add_time'=>'2014-12-5',
        ),array
        (
            'number'=>'11',
            'consignee'=>'李四',
            'add_time'=>'2013-12-5',
        ),)
 excel('销售报表数据',$field,$data);

 

public function excel($title,$fild,$data)
 {
        if(empty($fild) OR empty($data))return false;
        require_once APPPATH.'classes/Excel/PHPExcel.php';
        $objPHPExcel = new PHPExcel();
        
        $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
                             ->setLastModifiedBy("Maarten Balliauw")
                             ->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");

        $_tmp = 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');

        $key = array();//字段
        $i = 0;
        $column = array();
        foreach($fild as $k=>$v)
        {
            $key[$i] = $_tmp[$i];
            $column[$i] = $k;
            
            //$objPHPExcel->setActiveSheetIndex(0)->setCellValue(strval($key[$i]).strval(1), $v);
            $objPHPExcel->getActiveSheet()->setCellValueExplicit(strval($key[$i]).strval(1), $v);
            $i++;
        }
        
        $row = 2;

        foreach($data as $k=>$v)
        {
            foreach($key as $_k=>$_v)
            {
                //$objPHPExcel->setActiveSheetIndex(0)->setCellValue(strval($_v).strval($row), $v[$column[$_k]],PHPExcel_Cell_DataType::TYPE_STRING);
                $objPHPExcel->getActiveSheet()->setCellValueExplicit($_v.$row, $v[$column[$_k]],PHPExcel_Cell_DataType::TYPE_STRING);
            }
            $row++;
        }
        $objPHPExcel->getActiveSheet()->setTitle($title);


        // Set active sheet index to the first sheet, so Excel opens this as the first sheet
        $objPHPExcel->setActiveSheetIndex(0);


        // Redirect output to a client’s web browser (Excel5)
        header('Content-Type: application/vnd.ms-excel');
        header('Content-Disposition: attachment;filename="'.$title.'-'.date('Y-m-d').'.xls"');
        header('Cache-Control: max-age=0');
        // If you're serving to IE 9, then the following may be needed
        header('Cache-Control: max-age=1');

        // If you're serving to IE over SSL, then the following may be needed
        header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
        header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
        header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
        header ('Pragma: public'); // HTTP/1.0

        $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
        $objWriter->save('php://output');
        exit;
    }