海豚PHP实现Excel导入导出

6 篇文章 0 订阅
5 篇文章 0 订阅
其实网上有很多的教程了,包括官网也有,
不过出于一些原因,导入导出可能会失败,这里结合网上各教程总结一下
// 导出
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();
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值