ThinkPHP6.x,使用PHPExcel获取数据后插入到数据库中

TP6引入PHPExcel,需要用composer下载PHPExcel类库

参数:$file_excel,是从控制器传入的文件路径参数,文件上传参考的的是官方文档中的上传示例
<?php

namespace app\model;

use PHPExcel_IOFactory;
use think\Model;
use think\facade\Db;


class Admin extends Model
{

    public function insertGoods($file_excel)
    {
        /*读取excel文件,并进行相应处理*/
        $fileName = "./storage/" . $file_excel;
        if (!file_exists($fileName)) {
            exit("文件" . $fileName . "不存在");
        }
        $objPHPExcel = PHPExcel_IOFactory::load($fileName); //获取sheet表格数目
        $sheetCount = $objPHPExcel->getSheetCount(); //默认选中sheet0表
        $sheetSelected = 0;
        $objPHPExcel->setActiveSheetIndex($sheetSelected); //获取表格行数
        $rowCount = $objPHPExcel->getActiveSheet()->getHighestRow(); //获取表格列数
        $columnCount = $objPHPExcel->getActiveSheet()->getHighestColumn();
        $dataArr = array();
        /* 循环读取每个单元格的数据 */
        for ($row = 2; $row <= $rowCount; $row++) {
            //列数循环 , 列数是以A列开始
            $n = 0;
            for ($column = 'A'; $column <= $columnCount; $column++) {
                $dataArr[$row][$column] = $objPHPExcel->getActiveSheet()->getCell($column . $row)->getValue();
            }
        }
        // halt($dataArr);
        $goods = [];
        foreach ($dataArr as $k => $v) {
            $goods[$k]['goods_id'] = $v['D'];
            $goods[$k]['goods_name'] = $v['C'];
            $goods[$k]['order_amount'] = $v['K']*100;     //*100 让数据以整数存储
        }
        $insert_num =  Db::name('goods')
            ->limit(100)
            ->insertAll($goods);
        return $insert_num; //返回插入条数
    }
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值