解决使用php将excel数据导入数据库报错问题

今天在用 phpexcel 将数据xlxs数据导入到数据库发现一直报错

Array and string offset access syntax with curly braces is no longer supported

百度下发现PHP7.4后面版本,不再能够使用花括号来访问数组或者字符串的偏移,而我当前php版本是8.1 没办法根据他这个报错 一步一步找到对应的文件将{} 修改成\[\] 就可以了

下面列出其中两个地方。具体还有很多地方,需要自己一步一步修改:

最后附上我导入数据代码

复制代码
 $file = File::where(['status' => 0])->first();
        if (empty($file)) {
            exit("没有信息采集!");
        }
        $file_path = storage_path('app/public/' . $file->path);;

        $objPHPExcel = \PHPExcel_IOFactory::load($file_path);

        $worksheet = $objPHPExcel->getActiveSheet();

        $startRow = 2;  // 从第2行开始读取数据
        $endRow = $worksheet->getHighestRow();
        $endCol = $worksheet->getHighestColumn();

        for ($row = $startRow; $row <= $endRow; $row++) {
            $rowData = $worksheet->rangeToArray('A' . $row . ':' . $endCol . $row, NULL, TRUE, FALSE);
            if (!empty(Redis::get($rowData[0][0] . '_' . $rowData[0][1]. '_' . $rowData[0][2]. '_' . $rowData[0][3]))) {
                continue;
            }
            $temp = [
                'title' => $rowData[0][0] ?? '',
                'role_name' => $rowData[0][1] ?? '',
                'content' => $rowData[0][2] ?? '',
                'mobile' => $rowData[0][3] ?? '',
                'province' => $rowData[0][4] ?? '',
                'city' => $rowData[0][5] ?? '',
                'created_at' => date('Y-m-d H:i:s'),
                'updated_at' => date('Y-m-d H:i:s'),
            ];
            Redis::set(Redis::get($rowData[0][0] . '_' . $rowData[0][1]. '_' . $rowData[0][2]. '_' . $rowData[0][3]), 1);
            $inset_data[] = $temp;
        }
        if (!empty($inset_data)) {
            Info::insert($inset_data);
        }
        $file->status = 1;
        $file->save();
        exit("导入完成!");

我修改的包链接在此,compoer phpexecl包到本地之后,直接下载我的包覆盖即可,则不会报错Array and string offset access syntax with curly braces is no longer supported in ***

https://download.csdn.net/download/zhanglili1993/89105629

希望能帮到你

相关推荐
Alan_7531 分钟前
API 接口慢调用根因定位:从 TCP 建连到数据库 IO 的全栈排查实战
数据库
多巴胺梦想家1 小时前
事务与并发控制:当多人同时操作数据库
服务器·数据库·oracle
howard20052 小时前
PostgreSQL起步
数据库·postgresql
秋田君3 小时前
QT_QT布局详解
开发语言·数据库·qt
m0_738120723 小时前
PHP代码审计基础——超全局变量(三)
开发语言·安全·网络安全·php
可乐ea3 小时前
【Redis八股|第8篇】Redis 分布式锁原理与 Redisson 使用
数据库·redis·分布式·面试题·redis八股
李燚3 小时前
Eino devops 调试系统源码:GraphCompileCallback 怎么工作(第50篇-E36)
数据库·golang·agent·devops·graphql·aiagent·eino
ClouGence4 小时前
Oracle 到 OceanBase 迁移方案横评:停机导出/导入 vs OMS vs CDC 工具
数据库·oracle
Meya11274 小时前
不同规模机房怎么选 U 位系统?8 柜小型机房、40 柜数据中心完整选型参考
服务器·网络·数据库
m0_738120725 小时前
PHP代码审计基础——面向对象(四)
android·开发语言·网络·安全·github·php