分享使用PHP读取excel文件的方法

记录一下读取excel文件的方法,phpexcel的安装在我的另一篇博客中

    /**
     * 读取excel文件
     * @throws \PHPExcel_Exception
     * @throws \PHPExcel_Reader_Exception
     */
    public function readExcel() {
        // 获取表单上传文件
        $file = request()->file('file');
        // 移动到框架应用根目录/public/uploads/ 目录下
        $info = $file->move($_SERVER['DOCUMENT_ROOT'] . '/uploads');
        if ($info) {
            $fileurl = $_SERVER['DOCUMENT_ROOT'] . '/uploads/' . str_replace('\\', '/', $info->getSaveName());
            set_time_limit(0);
            $nowTime = time();
            /*读取excel文件,并进行相应处理*/
            $fileName = $fileurl;
            if (!file_exists($fileName)) {
                exit("文件" . $fileName . "不存在");
            }
            $extension = strtolower( pathinfo($fileName, PATHINFO_EXTENSION) );
            if ($extension =='xlsx') {
                $objReader = PHPExcel_IOFactory::createReader('Excel2007');
            } else {
//                ($extension =='xls')
                $objReader = PHPExcel_IOFactory::createReader('Excel5');
            }

            $objPHPExcel = $objReader->load($fileName);
            //默认选中sheet0表
            $sheetSelected = 0;
            $objPHPExcel->setActiveSheetIndex($sheetSelected);
            //获取表格行数
            $rowCount = $objPHPExcel->getActiveSheet()->getHighestRow();
            //获取表格列数
            $columnCount = $objPHPExcel->getActiveSheet()->getHighestColumn();
            /* 循环读取每个单元格的数据 */
            for ($column = 'A'; $column <= $columnCount; $column++) {
                $row_span_arr[] = $objPHPExcel->getActiveSheet()->getCell($column . 1)->getValue();
            }//goodsList
            $data = array();
//            if (stripos($row_span_arr[0], 'List')) {
            if (true) {
                //行数循环
                for ($row = 1; $row <= $rowCount; $row++) {
                    //列数循环 , 列数是以A列开始
                    if ($row > 1) {
                        for ($column = 'A'; $column <= $columnCount; $column++) {
                            $row_arr[] = $objPHPExcel->getActiveSheet()->getCell($column . $row)->getValue();
                        }
                        $data[] = $row_arr;
                        unset($row_arr);
                    }
                }
                return show('', 0, '上传成功');
            } else {
                return show('', 0, '所选择的excel不是商品导入文件,请重新操作');
            }
        } else {
            // 上传失败获取错误信息
            return show('', 1, '上传失败!');
            //return json_encode(['state' => 0, 'message' => $file->getError()]);
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值