PHPexcel导出数据(THINKPHP)

来源:互联网 发布:淘宝如何删除好评 编辑:程序博客网 时间:2024/06/06 19:56

第一种:

function import(){

import('Org.PHPExcel.PHPExcel');

include_once('/ThinkPHP/Library/Org/PHPExcel/PHPExcel.php');
$excel = new \PHPExcel();
//Excel表格式,这里简略写了4列
$letter = array('A', 'B',"C","D");
//表头数组
$tableheader = array('编号','姓名','年龄','性别');
//填充表头信息
for ($i = 0; $i < count($tableheader); $i++) {
$excel->getActiveSheet()->setCellValue("$letter[$i]1", "$tableheader[$i]");

}

//数据来源--根据实际情况填写$data

$data = M('user')->select();

for ($i = 2; $i <= count($data) + 1; $i++) {
$j = 0;
foreach ($data[$i - 2] as $key => $value) {
$excel->getActiveSheet()->setCellValue("$letter[$j]$i", "$value");
$j++;
}
}
//创建Excel输入对象
$write = new \PHPExcel_Writer_Excel5($excel);
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="account.xls"');
header("Content-Transfer-Encoding:binary");

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

}

第二种:

  //导出数据方法
    public function goods_export($goods_list)
    {
        $data = array();
        foreach ($goods_list as $k=>$goods_info){

   $data[$k][d_time]  = $goods_info['d_time'];
$data[$k][jiaoyihao] = '`'.$goods_info['jiaoyihao'];
$data[$k][user] = $goods_info['user'];
            $data[$k][dingname] = $goods_info['dingname'];
$data[$k][dianhua] = $goods_info['user'];
$data[$k][jxs] = jxsname($goods_info['jxs']);
$data[$k][goumai] = jsxleibie($goods_info['goumai']);
$data[$k][jine] = $goods_info['jine'];
$data[$k][lirun] = lirun($goods_info['jine']);
$data[$k][duizhang] = jxsduizhang($goods_info['duizhang']);

        }
        foreach ($data as $field=>$v){ 
    if($field == 'd_time'){
                $headArr[]='发生时间';
            } 
if($field == 'jiaoyihao'){
                $headArr[]='交易号';
            } 
if($field == 'user'){
                $headArr[]='账号';
            }
if($field == 'dingname'){
                $headArr[]='产品类别';
            }
if($field == 'dianhua'){
                $headArr[]='电话';
            }
if($field == 'jxs'){
                $headArr[]='经销商';
            }
if($field == 'type'){
                $headArr[]='交易类别';
            }
if($field == 'jine'){
                $headArr[]='金额';
            }
            if($field == 'lirun'){
                $headArr[]='利润';
            }


            if($field == 'duizhang'){
                $headArr[]='对账';
            }
        }
        $filename="Jxs_DingDan";


        $this->getExcel($filename,$headArr,$data);
    }




    public  function getExcel($fileName,$headArr,$data){
        //导入PHPExcel类库,因为PHPExcel没有用命名空间,只能inport导入
        import("Org.Util.PHPExcel");
        import("Org.Util.PHPExcel.Writer.Excel5");
        import("Org.Util.PHPExcel.IOFactory.php");


        $date = date("Y_m_d",time());
        $fileName .= "_{$date}.xls";


        //创建PHPExcel对象,注意,不能少了\
        $objPHPExcel = new \PHPExcel();
        $objProps = $objPHPExcel->getProperties();


        //设置表头
        $key = ord("A");
        //print_r($headArr);exit;
        foreach($headArr as $v){
            $colum = chr($key);
            $objPHPExcel->setActiveSheetIndex(0) ->setCellValue($colum.'1', $v);
            $objPHPExcel->setActiveSheetIndex(0) ->setCellValue($colum.'1', $v);
            $key += 1;
        }


        $column = 2;
        $objActSheet = $objPHPExcel->getActiveSheet();


        //print_r($data);exit;
        foreach($data as $key => $rows){ //行写入
            $span = ord("A");
            foreach($rows as $keyName=>$value){// 列写入
                $j = chr($span);
                $objActSheet->setCellValue($j.$column, $value);
                $span++;
            }
            $column++;
        }


        $fileName = iconv("utf-8", "gb2312", $fileName);


        //重命名表
        //$objPHPExcel->getActiveSheet()->setTitle('test');
        //设置活动单指数到第一个表,所以Excel打开这是第一个表
        $objPHPExcel->setActiveSheetIndex(0);
        ob_end_clean();//清除缓冲区,避免乱码
        header('Content-Type: application/vnd.ms-excel');
        header("Content-Disposition: attachment;filename=\"$fileName\"");
        header('Cache-Control: max-age=0');


        $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
        $objWriter->save('php://output'); //文件通过浏览器下载
        exit;
    }

0 0