使用PHPExcel将数据导出至Excel

安装类库

从GitHub上下载PHPExcel类库
地址:https://github.com/PHPOffice/PHPExcel

首先,我们先下载PHPExcel类库,将其解压到项目的相应文件夹下。
然后我们将创建(导出)Excel数据表格的方法封装如下:

/** 
 * 创建(导出)Excel数据表格 
 * @param  array   $list        要导出的数组格式的数据 
 * @param  string  $filename    导出的Excel表格数据表的文件名 
 * @param  array   $indexKey    $list数组中与Excel表格表头$header中每个项目对应的字段的名字(key值) 
 * @param  array   $startRow    第一条数据在Excel表格中起始行 
 * @param  [bool]  $excel2007   是否生成Excel2007(.xlsx)以上兼容的数据表 
 * 比如: $indexKey与$list数组对应关系如下: 
 *     $indexKey = array(‘id‘,‘username‘,‘sex‘,‘age‘); 
 *     $list = array(array(‘id‘=>1,‘username‘=>‘YQJ‘,‘sex‘=>‘男‘,‘age‘=>24)); 
 */  

function toExcel($list,$filename,$indexKey,$startRow=1,$excel2007=false){  
    //文件引入  
    // echo $pe[‘host_root‘].‘include/class/PHPExcel.php‘;die;
    include($pe[‘host_root‘].‘include/class/PHPExcel.php‘);  
    include($pe[‘host_root‘].‘include/class/PHPExcel/Writer/Excel2007.php‘);  
    // require("/include/class/PHPExcel.php");  
    // include("/include/class/PHPExcel/Writer/Excel2007.php");  
    ob_end_clean();
    if(empty($filename)) $filename = time();  
    if( !is_array($indexKey)) return false;  

    $header_arr = 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‘);  
    //初始化PHPExcel()  
    $objPHPExcel = new PHPExcel();  

    //设置保存版本格式  
    if($excel2007){  
        $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);  
        $filename = $filename.‘.xlsx‘;  
    }else{  
        $objWriter = new PHPExcel_Writer_Excel5($objPHPExcel);  
        $filename = $filename.‘.xls‘;  
    }  

    //接下来就是写数据到表格里面去  
    $objActSheet = $objPHPExcel->getActiveSheet();  
    //$startRow = 1;  
    foreach ($list as $row) {  
        foreach ($indexKey as $key => $value){  
            //这里是设置单元格的内容  
            $objActSheet->setCellValue($header_arr[$key].$startRow,$row[$value]);  
        }  
        $startRow++;  
    }  

    // 下载这个表格,在浏览器输出  
    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=‘.$filename.‘‘);  
    header("Content-Transfer-Encoding:binary");  
    $objWriter->save(‘php://output‘);  
}

其中 引入文件时要改成解压文件的实际路径。 listlist里为数组形式,其中的数组键值要与indexKey对应。

例如:

//利用筛选条件查询订单数据为$list(此处查询的代码就省略了)

$indexKey = array(‘order_sn‘,‘name‘,‘business‘,‘type‘,‘total‘,‘address‘,‘tel‘,‘moble‘,‘time1‘,‘status‘);       
//excel表头内容
$header = array(‘order_sn‘=>‘订单编号‘,‘name‘=>‘收货人‘,‘business‘=>‘商户名称‘,‘type‘=>‘支付方式‘,‘total‘=>‘订单金额‘,‘address‘=>‘收货地址‘,‘tel‘=>‘手机‘,‘moble‘=>‘电话‘,‘time1‘=>‘下单时间‘,‘status‘=>‘订单状态‘);
array_unshift($list,$header);//将查询到的订单数据和表头内容合并,构造成数组list
echo ‘<pre>‘;print_r($list);die; 

构造的数组如下
使用PHPExcel将数据导出至Excel

然后调用方法:

toExcel($list,‘1‘,$indexKey,1,true);
  • 1

将下载的文件打开
使用PHPExcel将数据导出至Excel

使用PHPExcel将数据导出至Excel

至此excel表就成功的导出。

 

 

文章摘自:https://blog.csdn.net/weixin_39696369/article/details/78646494

使用PHPExcel将数据导出至Excel

上一篇:Error: Cannot find module 'css-loader/locals'


下一篇:20175122邱昕 exp8 web基础