PHPExcel導出數據(瀏覽器下載)

導出按鈕獲取條件並下載

onDcBtnClick    : function(){
            //獲取參數
            var param= Render.getProviderParams();
            //var range_end= XXX ;
           //拼接參數
            location.href = '/order/management/downLoadOrders?range_end='+param.range_end+'&range_start='+param.range_start+'&status='+param.status;
        },

//下載數據處理

public function downLoadOrders(){
        $get = $this->input->get();
        $title = array(
            '供應商名稱',
            '產品編號',
            '品牌',
            '貨號',
            '規格/包裝',
            '產品名稱',
            '入庫時間',
            '出庫時間',
            '商城價格',
            '領用人姓名',
            '發票號',
            '對賬單號',
        );
        $param['a.recordid'] = intval($get['id']);
        $param['a.is_receive'] = '1';
        $ret = $this->db->select("b.name as sidname,a.*,c.invoice_num,c.record_sn")
            ->from('consign_storage as a')
            ->join('c_organisation as b','a.sid = b.id','left')
            ->join('record as c','a.recordid = c.id','left')
            ->where('a.sid !=',105466)
            ->where('a.sid !=',0)
            ->where('a.sid is not null')
            ->where($param);
        $ret = $ret->get()->result_array();
        $data = [];
        foreach ($ret as $key=>$val){
            $membername = $this->db->query("select b.membername from shipment_confirmation a left join user_info b on a.initiator = b.memberid where a.cstorage_id = {$val['id']}")->row_array();
            $data[$key]['sidname'] = $val['sidname'];
            $data[$key]['barcode'] = $val['barcode'];
            $data[$key]['pro_brand'] = $val['pro_brand'];
            $data[$key]['item_code'] = $val['item_code'];
            $data[$key]['package_name'] = $val['package_name'];
            $data[$key]['title'] = $val['title'];
            $data[$key]['create_time'] = $val['create_time'];
            $data[$key]['delivery_time'] = $val['delivery_time'];
            $data[$key]['prom_price'] = $val['prom_price'];
            $data[$key]['membername'] = $membername['membername'];
            $data[$key]['invoice_num'] = $val['invoice_num'];
            $data[$key]['record_sn'] = $val['record_sn'];
        }
        $this->mexcel->downLoadExcel($data,$title,'寄售對賬單');
    }
public function downLoadExcel($data,$title,$name){

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

		foreach($data as $key=>$value){
			$dataCount = count($data[$key]);
			$newCellName = array_slice($cellName,0,$dataCount);
			$dk = array_values($data[$key]);
			$newData[$key] = array_combine($newCellName,$dk);
		}

		/* @實例化 */
		$obpe = new PHPExcel();
		/* 設置寬度 */
		$obpe->getActiveSheet()->getColumnDimension()->setAutoSize(true);
		$obpe->getDefaultStyle()->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
		$obpe->getDefaultStyle()->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
		//設置SHEET
		$obpe->setactivesheetindex(0);
		$obpe->getActiveSheet()->setTitle('sheet1');
		foreach ($title as $tk => $tv) {
			$obpe->getactivesheet()->setCellValue($newCellName[$tk].'1', $tv);
		}
		$row = 2;
		foreach($newData as $value){
			foreach($newCellName as $k=>$v){
				$obpe->getactivesheet()->setCellValue($v.$row, $value[$v]);
			}
			$row++;
		}
		$write = new PHPExcel_Writer_Excel2007($obpe);
		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="'.$name.date('YmdHi').'.xlsx"');
		header("Content-Transfer-Encoding:binary");
		$write->save('php://output');exit;
	}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章