tp框架 文件上传+excel表格导入

1.composer下载扩展phpexcel

根目录下执行命令 composer require phpoffice/phpexcel


2.配置前端页面

这里我写了两种方式供参考使用哪一种都可以

html原生代码

<form action="/index/upload" enctype="multipart/form-data" method="post">
<input type="file" name="file" /> <br> 
<input type="submit" value="上传" /> 
</form> 

layui图片/文件上传模块 - layui.upload

详细参数链接,注意这不是layui的官方文档站(官网文档站已关闭),不知道什么时候就没了

layui.use('upload', function(){
        var upload = layui.upload;

        //执行实例
        var uploadInst = upload.render({
            elem: '#excel_into' //绑定元素
            ,url: '/dzqycms/customer/upload' //上传接口
            ,accept:'file'//文件类型
            ,acceptMime:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"//限制文件类型
            ,exts:'xlsx'//选择文件时显示的后缀
            ,done: function(res){
                console.log(res);
                //上传完毕回调
            }
            ,error: function(){
                //请求异常回调
            }
        });
    });

3.php文件上传代码


tp6写法

tp6文件上传官网详细文档

public function upload(){
	$file = request()->file('file');
	$filename = \think\facade\Filesystem::disk('public')->putFile( 'excel', $file);
}

tp5&5.1写法


[tp5.1文件上传官网详细文档](https://www.kancloud.cn/manual/thinkphp5_1/354121)
public function upload(){
    // 获取表单上传文件 例如上传了001.jpg
    $file = request()->file('file');
    
    // 移动到框架应用根目录/public/uploads/ 目录下
    if($file){
        $info = $file->move(ROOT_PATH . 'public' . DS . 'uploads');
        if($info){
            // 成功上传后 获取上传信息
            // 输出 jpg
            echo $info->getExtension();
            // 输出 20160820/42a79759f284b767dfcb2a0197904287.jpg
            echo $info->getSaveName();
            // 输出 42a79759f284b767dfcb2a0197904287.jpg
            echo $info->getFilename(); 
        }else{
            // 上传失败获取错误信息
            echo $file->getError();
        }
    }
}

4.php 导入的Excel文件解析


use PHPExcel_IOFactory; //别忘了引用PHPExcel_IOFactory类

  public function parsing($filename)//$filename上传的文件路径
    {

        $objPHPExcelReader = PHPExcel_IOFactory::load($filename); //加载excel文件
        $sheet = $objPHPExcelReader->getSheet(0); // 读取第一個工作表
        $highestRow = $sheet->getHighestRow(); // 取得总行数
        $highestColumm = $sheet->getHighestColumn(); // 取得总列数
        $highestColumm++;
        $rowIndex = 2;
        for ($rowIndex; $rowIndex <= $highestRow; $rowIndex++) {        //循环读取每个单元格的内容。注意行从1开始,列从A开始
            $a = 1;
            for ($colIndex = 'A'; $colIndex != $highestColumm; $colIndex++) {
                $addr = $colIndex . $rowIndex;
                echo $addr.PHP_EOL;
                $value = $sheet->getCell($addr)->getValue();
                if (empty($value)){
                    return ['code'=>2,'msg'=>"位置:$addr,的数据不能为空"];
                }

                $data[$rowIndex][$a] =$value;
                $a++;
            }
        }
        var_dump($data);die;
        
    }

excel表格内容:
在这里插入图片描述

执行代码打印出的数据:
在这里插入图片描述
5分钟完活,剩下的就是根据自己代码逻辑来了。

(强烈安利大家一个动漫,《国外排名》👇👇,工作之余也要放松一下啊)
在这里插入图片描述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值