PHPexcel 導入/導出 方法

(所需PHPExcel類庫自己下)
一、function:

function column_str($key)
{
    $array = 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', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ', 'BA', 'BB', 'BC', 'BD', 'BE', 'BF', 'BG', 'BH', 'BI', 'BJ', 'BK', 'BL', 'BM', 'BN', 'BO', 'BP', 'BQ', 'BR', 'BS', 'BT', 'BU', 'BV', 'BW', 'BX', 'BY', 'BZ', 'CA', 'CB', 'CC', 'CD', 'CE', 'CF', 'CG', 'CH', 'CI', 'CJ', 'CK', 'CL', 'CM', 'CN', 'CO', 'CP', 'CQ', 'CR', 'CS', 'CT', 'CU', 'CV', 'CW', 'CX', 'CY', 'CZ', 'DA', 'DB', 'DC', 'DD', 'DE', 'DF', 'DG', 'DH', 'DI', 'DJ', 'DK', 'DL', 'DM', 'DN', 'DO', 'DP', 'DQ', 'DR', 'DS', 'DT', 'DU', 'DV', 'DW', 'DX', 'DY', 'DZ', 'EA', 'EB', 'EC', 'ED', 'EE', 'EF', 'EG', 'EH', 'EI', 'EJ', 'EK', 'EL', 'EM', 'EN', 'EO', 'EP', 'EQ', 'ER', 'ES', 'ET', 'EU', 'EV', 'EW', 'EX', 'EY', 'EZ');
    return $array[$key];
}

function column($key, $columnnum = 1)
{
    return column_str($key) . $columnnum;
}
//導出excel表
function excel($list, $params = array()){
    Loader::import('PHPExcel.Classes.PHPExcel');//手動引入PHPExcel.php
    //實例化PHPexcel類,等同於新建一個excel
    $objPHPExcel = new \PHPExcel();
    for($i=1;$i<=3;$i++){
        if($i>1){
            $objPHPExcel->createSheet();//創建內置表
        }
    }
    $sheet = $objPHPExcel->setActiveSheetIndex(0);//把新創建的sheet 設定爲當前活動的sheet
    $rownum = 1;
    foreach ($params['columns'] as $key => $column )
    {
        $sheet->setCellValue(column($key, $rownum), $column['title']);
        if (!(empty($column['width'])))
        {
            $sheet->getColumnDimension(column_str($key))->setWidth($column['width']);
        }
    }
    ++$rownum;
    $len = count($params['columns']);
    foreach ($list as $row )
    {
        $i = 0;
        while ($i < $len)
        {
            $value = ((isset($row[$params['columns'][$i]['field']]) ? $row[$params['columns'][$i]['field']] : ''));
            $sheet->setCellValue(column($i, $rownum), $value);
            ++$i;
        }
        ++$rownum;
    }

    header('Content-Type: application/vnd.ms-excel');
    header('Content-Disposition:attachment;filename="'.$params['title'].'.xls"');
    $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
    $objWriter->save('php://output');
    $objPHPExcel->disconnectWorksheets();
}

二、調用

public function dcExcel(){
$columns = array(
                    array('title' => '編號', 'field' => 'id', 'width' => 10),
                    array('title' => '用戶ID', 'field' => 'uid', 'width' => 12),
                    array('title' => '會員姓名', 'field' => 'username', 'width' => 12),
                    array('title' => '提現金額', 'field' => 'credit2', 'width' => 30),
                    array('title' => '手續費', 'field' => 'fee', 'width' => 15),
                    array('title' => '支付方式', 'field' => 'pay_method', 'width' => 15),
                    array('title' => '賬戶', 'field' => 'account', 'width' => 12),
                    array('title' => '真實姓名', 'field' => 'realname', 'width' => 12),
                    array('title' => '電話', 'field' => 'mobile', 'width' => 30),
                    array('title' => '狀態', 'field' => 'status', 'width' => 15),
                    array('title' => '備註', 'field' => 'note', 'width' => 15),
                    array('title' => '申請時間', 'field' => 'create_time', 'width' => 15),
                   );
                $data=Db::name("withdraw")->select();
                excel($data,array('title'=>"提現申請表". date('Y-m-d-H-i', time()), 'columns' => $columns));
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章