phpExcel 导出

来源:互联网 发布:好用的桌面便签 知乎 编辑:程序博客网 时间:2024/05/19 03:45
  
  $lists = '';             //sql查询结果;
  $total_money = '';  $filename="order_excel"; // 文件名称  $headArr=array("ID","用户名称","专家名称","专家订单","订单价格","消费类型","订单类型","订单时间","订单有效期");        $title = "订单明细";     //  文件标题  $total_name = '总金额';  $this->exportExcel($filename,$title,$headArr,$order_listss,$total_name,$total_money);
第一种:
function exportExcel($filename,$expTitle,$expCellName,$expTableData,$total_name='',$total_money='')
{        $xlsTitle = iconv('utf-8', 'gb2312', $expTitle);//文件名称        $fileName = $filename.date('_YmdHis');//or $xlsTitle 文件名称可根据自己情况设定        $cellNum = count($expCellName);        $dataNum = count($expTableData);        Vendor("PHPExcel.PHPExcel");        Vendor("PHPExcel.PHPExcel.Writer.Excel5");        Vendor("PHPExcel.PHPExcel.PHPExcel.IOFactory.php");        $objPHPExcel = new \PHPExcel();        $cellName = 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');                $objPHPExcel->getActiveSheet(0)->mergeCells('A1:'.$cellName[$cellNum-1].'1');//合并单元格        $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', $expTitle.'  Export time:'.date('Y-m-d H:i:s'));          for($i=0;$i<$cellNum;$i++){            $objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$i].'2', $expCellName[$i]);         }         $column = 3;        $objActSheet = $objPHPExcel->getActiveSheet(0);        foreach($expTableData as $keys => $rows){             $span = ord("A");            foreach($rows as $keyName=>$value){                $j = chr($span);                $objActSheet->setCellValue($j.$column, $value);                $span++;            }            $column++;        }        if (!empty($total_money) && !empty($total_name))        {            $objActSheet->setCellValue('A'.$column, $total_name);            $objActSheet->setCellValue('B'.$column, $total_money[0]['total_money']);        }                        header('pragma:public');        header('Content-type:application/vnd.ms-excel;charset=utf-8;name="'.$xlsTitle.'.xls"');        header("Content-Disposition:attachment;filename=$fileName.xls");//attachment新窗口打印inline本窗口打印        $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');          $objWriter->save('php://output');         exit;   }
第二种:
/** * excel表格导出 * @param string $fileName 文件名称 * @param array $expTitle 表头名称 * @param array $expTableData 要导出的数据 * @author static7  */function exportExcel($filename,$expTitle,$expCellName,$expTableData){//    $xlsTitle = iconv('utf-8', 'gb2312', $expTitle);//文件名称//    $fileName = $expTitle;//or $xlsTitle 文件名称可根据自己情况设定    $cellNum = count($expCellName);    $dataNum = count($expTableData);    vendor("PHPExcel");    $objPHPExcel = new PHPExcel();    // Set document properties    $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");        ob_clean();    //解决文件损坏// Add some data        $cellName = 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');            // $nowDate = date('Y-m-d H:i', time());    $objPHPExcel->getActiveSheet(0)->mergeCells('A1:'.$cellName[$cellNum-1].'1');    //合并单元格    $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', $expTitle.'  导出时间:'.date('Y-m-d H:i:s'));     for($i=0;$i<$cellNum;$i++){        $objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$i].'2', $expCellName[$i]);     }    $column = 3;    $objActSheet = $objPHPExcel->getActiveSheet(0);    foreach($expTableData as $keys => $rows){  // 行写入            $span = ord("A");            foreach($rows as $keyName => $value){    // 列写入                $j = chr($span);                $objActSheet->setCellValue($j.$column, $value);                $span++;            }            $column++;        }    // Rename worksheet 重命名工作表,修改sheet名称    $objPHPExcel->getActiveSheet()->setTitle('Simple');// Set active sheet index to the first sheet, so Excel opens this as the first sheet    $objPHPExcel->setActiveSheetIndex(0);    // 设置活动单指数到第一个表,所以Excel打开这是第一个表// Redirect output to a client’s web browser (Excel2007)    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');    header("Content-Disposition: attachment;filename=$filename.xlsx");    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, 'Excel2007');    $objWriter->save('php://output');    exit;}
0 0