海豚PHP實現Excel導入導出

其實網上有很多的教程了,包括官網也有,
不過出於一些原因,導入導出可能會失敗,這裏結合網上各教程總結一下
// 導出
public function export()
    {
        // 查詢數據
        $data = listModel::all();
        
        // 設置表頭信息(對應字段名,寬度,顯示錶頭名稱)
        $cellName = [
            ['id', 'auto', 'ID'],
            ['name', 'auto', '級別名稱'],
            ['score', 'auto', '積分要求'],
            ['discount', 'auto', '享受折扣'],
            ['create_time', 'auto', '創建時間'],
            ['update_time', 'auto', '更新時間'],
            ['status', 'auto', '狀態']
        ];
        // 前面導出的數據其實是不能使用的,因爲沒有人知道這些數字代表的什麼,所以要對數據進行遍歷
        // 如果是一對多的關係,查出來的數據還要調用模型方法
        foreach ($data as $key => $value) {
        	$data[$key] = [
        	    'status' => ($value['status']==1) ? '啓用' : '禁用',
        	    
        	]
        }
   
        // 調用插件(傳入插件名,[導出文件名、表頭信息、具體數據])
        plugin_action('Excel/Excel/export', ['test', $cellName, $data]);
    }
// 導入
public function import()
{    
    if ($this->request->isPost()) {
        if($_POST['files']) {
        	$excel_file = $this->request->post('file');
        	// 獲取附件 ID 完整路徑
        	$full_path = getcwd() . get_file_path($excel_file);    
             // 你要導入的字段
            $fields=array('name'=>'名稱','count'=>'申請量');
            // 調用插件('插件',[路徑,導入表名,字段限制,類型,條件,重複數據檢測字段])
            $result=plugin_action('Excel/Excel/import', [$full_path,$table='list',$fields,1,$where=array(),'id']);
            $this->success($result['message']);
        }
        exit;
    } else {
        return ZBuilder::make('form')
        ->addFormItem('file', 'files', '附件')
        ->isAjax(false)
        ->fetch();
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章