• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

PHPExcel导入

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
public function importFile()
    {
        $file = request()->file('file');
        $params = $this->request->param(); //可以获取到参数
        if (!$file) {
            $this->error('请选择导入文件');
        }
        // 保存的文件路径
        $info = $file->move(ROOT_PATH . 'public' . DS . 'uploads');
     //获取文件路径
$filePath = ROOT_PATH . 'public' . DS . 'uploads' . DS . $info->getSaveName();
     //找不到文件
if (!is_file($filePath)) { $this->error('无相关记录'); }

     //===========开始
$PHPReader = new \PHPExcel_Reader_Excel2007(); if (!$PHPReader->canRead($filePath)) { $PHPReader = new \PHPExcel_Reader_Excel5(); if (!$PHPReader->canRead($filePath)) { $PHPReader = new \PHPExcel_Reader_CSV(); if (!$PHPReader->canRead($filePath)) { $this->error('未知格式'); } } } $PHPExcel = $PHPReader->load($filePath); //加载文件 $currentSheet = $PHPExcel->getSheet(0); //读取文件中的第一个工作表 $allColumn = $currentSheet->getHighestDataColumn(); //取得最大的列号 $allRow = $currentSheet->getHighestRow(); //取得一共有多少行 $maxColumnNumber = \PHPExcel_Cell::columnIndexFromString($allColumn); //获取有多少列 //获取到上传的excel中的第一行作为列头 for ($currentRow = 1; $currentRow <= 1; ++$currentRow) { for ($currentColumn = 0; $currentColumn < $maxColumnNumber; ++$currentColumn) { $val = $currentSheet->getCellByColumnAndRow($currentColumn, $currentRow)->getValue(); $fields[] = $val; } }
     //存总数据用的
$insert = []; //循环总行数:currentRow 从第二行开始才是数据 for ($currentRow = 2; $currentRow <= $allRow; ++$currentRow) { $values = []; //行数据 // 循环每行每列 for ($currentColumn = 0; $currentColumn < $maxColumnNumber; ++$currentColumn) { $val = $currentSheet->getCellByColumnAndRow($currentColumn, $currentRow)->getValue(); $values[] = is_null($val) ? '' : $val; } $row = []; // 合并 $temp = array_combine($fields, $values);          foreach ($temp as $k => $v) { if ($k !== '') { $k = trim($k); //获得key $col = self::excel2dbColhandler($k);//传入Excel的列头名,返回对应的数据库字段 if ($col) { $row[$col] = trim($v); } } } if ($row) { $row['create_time'] = date('Y-m-d h:i:s'); $insert[] = $row; } } // 获取要新增的model $nowModel = $this->getNowModel($params['tbname']); $nowModel->saveAll($insert); unset($info); //开始释放变量 unlink($filePath); //删除文件 }

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
php结合md5的加密,解密方法发布时间:2022-07-10
下一篇:
关于php调用.net的webservice踩过的坑发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap