tp5 使用PHPExcel实现数据批量导入mysql数据库

本文介绍了一个使用PHPExcel插件处理Excel文件的示例,包括前端使用layui框架实现文件上传按钮,后端通过PHP处理上传的Excel文件,并将数据插入数据库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PHPExcel插件下载地址:
链接:https://pan.baidu.com/s/1jB9KSta0Aq3IM04ZO69pDw
提取码:5oa2

前端使用layui框架
html

<button class="layui-btn" id="ceshi"><i class="layui-icon" >&#xe642;</i>导入</button>

<script>
	layui.use('upload', function(){
                var upload = layui.upload;
                //执行实例
                var uploadInst = upload.render({
                  elem: '#ceshi' //绑定元素
                  ,url: "{:url('addExcel')}" //上传接口
                  ,accept: 'file'
                  ,done: function(res){
                    //上传完毕回调
                    // layer.closeAll('loading');
                    console.log(res)
                  }
                  ,error: function(){
                    //请求异常回调
                  }
                });
              });
</script>

将phpexcel插件放入到/extend

php

namespace app\admin\controller;

import('PHPExcel/PHPExcel',EXTEND_PATH);

class User
{
public function addExcel(){
        $file = $_FILES['file']; //获取上传文件
        $extension = strtolower(pathinfo($file['name'],PATHINFO_EXTENSION));  //pathinfo()函数以数组的形式返回文件路径的信息
        if($extension == "xlsx"){
            //2007(相当于是打开接收的这个excel)
            $objReader = \PHPExcel_IOFactory::createReader('Excel2007');
        }else{
            return output_error(1, '不是期望的文件');
        }
        // return output_data($file);
        // die;
        $objContent = $objReader -> load($file['tmp_name']); //加载缓存文件
        $sheetContent = $objContent -> getSheet(0)  //获取活动的表格
                                    -> toArray();   //  转换成数组
        // $name = explode('.',pathinfo($file['name'],PATHINFO_BASENAME));
        // return output_data($sheetContent);
        // $name_table= $extension = strtolower($name[0]); //提取文件名
        // return output_data($file);
        //提取表字段,一维数组
        // $field_table = $sheetContent[0]; //0表示excel表格第0行,可用于提取表字段
        // return output_data($field_table);
        //提取数组,二维数组
        $data_table = [];
        // $i=1表示从excel第二行开始
        for($i=1, $n=count($sheetContent);$i<$n;$i++){
            $data_table[$i] = [
                'nickname' => $sheetContent[$i][0],
                'avatarurl' => $sheetContent[$i][1],
                'openid' => $sheetContent[$i][2],
                'session_key' => $sheetContent[$i][3],
                'grade' => $sheetContent[$i][4]
            ];
        }
        $sql = db('user')->insertAll($data_table);
        if($sql){
            return output_data([]);
        }else{
            return output_error(1, 'err');
        }

    }
}

上传的base_user.xlsx文件
在这里插入图片描述
参考:https://blog.youkuaiyun.com/doubi6/article/details/106188881

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值