導出數據庫數據成Excel

  1. 定義好導出函數:php

  2. 讀取數據,調用導出函數(exportExcel):web

  3. 附加源代碼:瀏覽器

       

    /**
     * 載入訂單
     */
    public function loadOrders() {
        $start_time = strtotime($this->_get('start')); //將開始時間轉化爲時間戳
        $end_time = strtotime($this->_get('end'));   //將結束時間轉化爲時間戳app

        if ($start_time >= $end_time) {
            $this->error("開始時間必須小於或者等於結束時間!");
        }函數


        //獲取店鋪信息
        $company = M('Company')->where("`token`='{$this->token}' AND `isbranch`=0")->find();
        $cid = $company['id'];
       
        //定義時間段
        $where['time'] = array(array('gt', $start_time), array('lt', $end_time));
        $where['token'] = $this->token;
        $where['cid'] = $cid;
       
        $orders = M('product_cart')->where($where)->select();
        $headArr = array('下單日期', '下單時間', '訂單號', '當前商品金額', '商品類目', '商品名稱', '購買數量', '購買單價', '贈品信息', '付款狀態', '配送方式', '配送時間', '客戶姓名', '客戶生日',  '配送校區', '配送學院及樓棟', '取貨地址', '電話號碼');
        $this->exportExcel($headArr, $tempOders);
        exit('不進行顯示');
    }this

    private function exportExcel($headArr, $data, $fileName = 'order') {
        vendor("PHPExcel.PHPExcel"); //引入PhpExcel
        $file_name = $fileName . time();
        $objPHPExcel = new PHPExcel();
        /* 如下是一些設置 ,什麼做者  標題啊之類的 */
        $objPHPExcel->getProperties()->setCreator("訂單數據")
                ->setLastModifiedBy("訂單數據")
                ->setTitle("訂單數據")
                ->setSubject("訂單數據")
                ->setDescription("訂單數據")
                ->setKeywords("excel")
                ->setCategory("result file");
        /* 如下就是對處理Excel裏的數據, 橫着取數據,主要是這一步,其餘基本都不要改 */
        //設置表頭
        $key = ord("A");
        foreach ($headArr as $v) {
            $colum = chr($key);
            $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '1', $v);
            $key += 1;
        }
        //開始行寫入
        $column = 2;
        $objActSheet = $objPHPExcel->getActiveSheet();
        $objActSheet->getColumnDimension('C')->setWidth(20);
        $objActSheet->getColumnDimension('N')->setWidth(40);
        $objActSheet->getColumnDimension('O')->setWidth(40);
        foreach ($data as $key => $rows) { //行寫入
            $span = ord("A");
            foreach ($rows as $keyName => $value) {// 列寫入
                $j = chr($span);
                if(strlen($value)>6){
                    $objActSheet->setCellValueExplicit($j . $column, $value, PHPExcel_Cell_DataType::TYPE_STRING); 
                }else{
                    $objActSheet->setCellValue($j . $column,  $value);
                }
                $span++;
            }
            $column++;
        }spa

        //重命名錶
        $objPHPExcel->getActiveSheet()->setTitle($file_name);
        //設置活動單指數到第一個表,因此Excel打開這是第一個表
        $objPHPExcel->setActiveSheetIndex(0);
        //將輸出重定向到一個客戶端web瀏覽器(Excel2007)
        ob_end_clean();
        header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
        header("Content-Disposition: attachment; filename=\"$file_name\".xlsx");
        header('Cache-Control: max-age=0');
        $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
        $objWriter->save('php://output'); //文件經過瀏覽器下載
    }excel

相關文章
相關標籤/搜索