美文网首页
PHP根据Excel表头指定的字段,自动匹配数据

PHP根据Excel表头指定的字段,自动匹配数据

作者: PHP的点滴 | 来源:发表于2020-12-04 00:30 被阅读0次

    背景

    在使用PHP解析Excel数据的时候,经常期望能把Excel中的数据自动和数据库字段建立上映射关系;
    比如下图一 - Excel文件,图二 - 数据库字段
    如果读取Excel后直接返回下面的数据就好了!
    虽然这是在处理excel的时常用的需求,但是目前在网上没有找到一个方便好用的方法!
    于是我决定造了一个轮子,我封装了一个比较简单的方式,基本只要一行代码,就可以直接返回下面结构;

    [{
        "name": "张三",
        "height": 180,
        "birthday": "2000年11月13日"
    }, {
        "name": "李四",
        "height": 160,
        "birthday": "2001年12月3日"
    }, {
        "name": "王五",
        "height": 170,
        "birthday": "1992年1月13日"
    }]
    
    图一 - excel文件
    图二 - 数据库字段

    安装

    安装扩展包

    composer require jsyqw/utils
    
    /**
        $file: excel 文件路径
        数据库字段 birthday 和excel表头中的数据 "出生日期" 对应,
        数据库字段 name 和excel表头中的数据 "名称" 对应,
        数据库字段 height 和excel表头中的数据 "身高" 对应,
    */
    //  敲重点,这个就是那个简化封装的代码
    $data = ExcelHelper::instance()->getData($file, ["birthday" => "出生日期", "name" => "名称", "height" => "身高"]);
    
    

    $data 的数据如下:

    [{
        "B": "男",
        "C": "打篮球",
        "E": 70,
        "G": null,
        "name": "张三",
        "height": 180,
        "birthday": "2000年11月13日"
    }, {
        "B": "女",
        "C": null,
        "E": 50,
        "G": null,
        "name": "李四",
        "height": 160,
        "birthday": "2001年12月3日"
    }, {
        "B": "女",
        "C": "画画",
        "E": 40,
        "G": null,
        "name": "王五",
        "height": 170,
        "birthday": "1992年1月13日"
    }]
    

    对应的源码地址:

      https://github.com/jasonyqwang/Utils.git
    

    相关文章

      网友评论

          本文标题:PHP根据Excel表头指定的字段,自动匹配数据

          本文链接:https://www.haomeiwen.com/subject/icxbwktx.html