PHPExcel 求和

QQ截图20191101220212.jpg
我想在导出excel表格加一个汇总的金额总和 请问怎么把$sum值传到下面一个控制器导出并且在excel表格中显示

<?php
class ExportgzfController extends Admin{
    public function __construct(){
        parent::__construct();
        $this->oracle= $this->model("oracle");
    }
    
    public function indexAction(){
        //$data = $this->oracle->page("*", "ALL_WEB_YULU_BAK_VM", $where, "order by WCT_ID ASC", 1, 30);
        //print_r($data);
                //print_r($data);
        $fields = array(
            "WCT_CNTRNO"=>"箱号",
            "WCG_BILLNO"=>"提单号",
            "WCT_CSZ_CSIZECD"=>"尺寸",
            "WCT_CTP_COMMCODE"=>"箱型",
            "WCT_HEI_CHEIGHTCD"=>"高箱标记",
            "WCT_COP_COPERCD"=>"持箱人",
            "WCT_TRANSEA_FLAG"=>"内外贸",
            "WCG_GNAME"=>"货名",
            "WCT_UNLDPORTCD"=>"卸货港",
            "WCG_INSTM"=>"预录时间",
            "WSP_OPSTTM"=>"计划开始时间",
            "WSP_OPEDTM"=>"计划结束时间",
            "IYC_INYTM"=>"进场时间",
            "CST_CSTM"=>"付费人",
            "IYC_INYTM2"=>"进闸口时间",
            "MONEY"=>"金额"
        );
        $this->load->file(APPPATH."fields.php");
        $page         =     $this->input->get("page");
        $page         =     $page ? $page : 1;
        $pagesize    =   $this->input->get("pagesize");
        $pagesize     =     $pagesize ? $pagesize : 25;
        $where      =    array();
        
        $searchData =   $this->input->get("data");

        $CST_CSTM     =      $searchData["CST_CSTM"];
        $CST_CSTM     &&     $where[]= "CST_CSTM = '$CST_CSTM'";
        $WCT_CNTRNO     =      $searchData["WCT_CNTRNO"];
        $WCT_CNTRNO     &&     $where[]= "WCT_CNTRNO = '$WCT_CNTRNO'";
        if($searchData["start_time"]){
            $where[] = "WCG_INSTM >= '".$searchData["start_time"]."'";//to_date('".$searchData["start_time"]."','yyyy-mm-dd hh24:mi')";
        }
        if($searchData["end_time"]){
            $where[] = "WCG_INSTM <= '".$searchData["end_time"]."'";
        }
        
        
        if($searchData["start_timee"]){
            $where[] = "IYC_INYTM2 >= '".$searchData["start_timee"]."'";//to_date('".$searchData["start_time"]."','yyyy-mm-dd hh24:mi')";
        }
        if($searchData["end_timee"]){
            $where[] = "IYC_INYTM2 <= '".$searchData["end_timee"]."'";
        }
        
        
        //ALL_WEB_YULU_BAK_VM 备份
        $data = $this->oracle->page("*", "px_chukougzf_vm", $where, "", $page, $pagesize);
        $total= $this->oracle->cnt("px_chukougzf_vm", $where);
        //echo $page;
        //var_dump($data);
        
        
        
        $urlparam = array(
            "page" => "{page}",
            'data[CST_CSTM]'    => $CST_CSTM,
            'data[WCT_CNTRNO]'    => $WCT_CNTRNO,
            "data[start_time]"=>$searchData["start_time"],
            "data[end_time]"=>$searchData["end_time"],
            "data[start_timee]"=>$searchData["start_timee"],
            "data[end_timee]"=>$searchData["end_timee"],
            
        );
        $pagelist = $this->instance('pagelist');    //加载分页类
        $pagelist->loadconfig();
        $pagelist = $pagelist->total($total)->url(url("admin/exportgzf/", $urlparam) )->num($pagesize)->page($page)->output();
        
        
        $sum = 0;
        
        foreach($data as &$w)
        {
            if(strpos($w["WCT_CSZ_CSIZECD"],"20") !== false && strpos($w["WCT_TRANSEA_FLAG"],"内贸") !== false){
            $sum+=$w["MONEY"]="50";
            }
            else if(strpos($w["WCT_CSZ_CSIZECD"],"40") !== false && strpos($w["WCT_TRANSEA_FLAG"],"内贸") !== false){
            $sum+=$w["MONEY"]="80";
            }
            else if(strpos($w["WCT_CSZ_CSIZECD"],"45") !== false && strpos($w["WCT_TRANSEA_FLAG"],"内贸") !== false){
            $sum+=$w["MONEY"]="80";  
            }
            else if(strpos($w["WCT_CSZ_CSIZECD"],"20") !== false){
            $sum+=$w["MONEY"]="80";}
            else if(strpos($w["WCT_CSZ_CSIZECD"],"40") !== false){
            $sum+=$w["MONEY"]="120";}
            else if(strpos($w["WCT_CSZ_CSIZECD"],"45") !== false){
            $sum+=$w["MONEY"]="120";}
        }
        
        var_dump($sum);
        
        
        //echo $pagelist;
        $searchForm = "付费人:   ".content_input("CST_CSTM", array($CST_CSTM));
        $searchForm.= "箱号:   ".content_input("WCT_CNTRNO", array($WCT_CNTRNO));
        $searchForm.= "预录时间:   ".content_datetime("start_time", array($searchData["start_time"]), array("type"=>"yyyy-MM-dd HH:mm"));
        $searchForm.= "—".content_datetime("end_time", array($searchData["end_time"]), array("type"=>"yyyy-MM-dd HH:mm"));
        
        $searchForm.="<br/>";
        
        $searchForm.= "进闸口时间:   ".content_datetime("start_timee", array($searchData["start_timee"]), array("type"=>"yyyy-MM-dd HH:mm"));
        $searchForm.= "—".content_datetime("end_timee", array($searchData["end_timee"]), array("type"=>"yyyy-MM-dd HH:mm"));
        
        $searchForm.= '<input type="submit" class="btn btn-success btn-sm" value="搜索" name="submit">';
        $searchForm.= '<a href="'.url("admin/export").'" class="btn btn-success btn-sm" value="搜索" name="submit">导出</a>';
        
        
        
        
        $this->view->assign(array(
            'searchValue'    => array('c'=>'exportgzf', 'a'=>'index'),
            'searchForm'    => $searchForm,
            'data'            => $data,
            'fields'        => $fields,
            'pagelist'      => $pagelist,
            'del'            => 1
        ));
        $this->view->display('admin/list');
    }
}

导出的控制器Export

<?php
class ExportController extends Admin{
    public function indexAction(){
        $inputFileType = 'HTML';
        $inputFileName = 'file.html';
        $opts = array (  
                'http' => array (  
                    'method' => 'GET',  
                    'header'=>   
                    "Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\r\n" .  
                    "Cookie:finecms_b1bf4_ci_session=".urlencode($_COOKIE["finecms_b1bf4_ci_session"])."; \r\n".  
                "Pragma:no-cache\r\n",  
                 )  
        );
        //print_r($_SERVER['HTTP_REFERER']."&pagesize=100");
        //die();
        $context = stream_context_create($opts);  
        $url = $_SERVER['HTTP_REFERER']."&pagesize=10000";
        $url = str_replace($_SERVER['HTTP_HOST'], "127.0.0.1",$url);
        $url = str_replace(803, "80",$url);
        //echo $url;
        //die();
        session_write_close();
        $result_data=file_get_contents($url,false,$context);  
        
        //print_r($result_data);
        //die();
        preg_match("/\t<table[\s\S]*table>/i", $result_data, $result_dt);
        $result_data = $result_dt[0];
        if(!$result_data){
            $this->adminMsg("导出失败,请重试");
            die();
        }
        //print_r($result_dt);
        //die();
        file_put_contents($inputFileName, $result_data);
        $this->load->file(APPPATH."PHPExcel/PHPExcel.php");
        $outputFileType = 'Excel2007';
        $outputFileName = 'export.xlsx';

        $objPHPExcelReader = @PHPExcel_IOFactory::createReader($inputFileType);
        $objPHPExcel = @$objPHPExcelReader->load($inputFileName);
        $objPHPExcelWriter = PHPExcel_IOFactory::createWriter($objPHPExcel,$outputFileType);
        $objPHPExcel = $objPHPExcelWriter->save($outputFileName);
        header("location:/cost/export.xlsx");
    }
}
阅读 2.2k
1 个回答

你应该把你生成数据那一部分,单独提出去到一个方法,这样你导出时再调用那个方法就好了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题