ThinkPHP5.1使用phpexcel第三方类库读取excel文件(读取功能)

步骤:
1.判断excel类型(后缀名为.xls与.xlsx)
2.读取文件(load($path))
3.获取工作薄(getSheet(0))
4.获取总行数(getHighestRow())
5.获取总列数(getHighestColumn())
6.重点理解这一步数据拼装:循环取出每个单元格的值并拼装数组(getActiveSheet()->getCell(“A2”)->getValue())
7.组装数组,完成业务逻辑

里边遍历行和列的算法类似冒泡排序算法

控制器index使用扩展exetend,主要留意如何使用extend扩展目录里定义的类

<?php
namespace app\index\controller;
use think\Controller;
use Excel\Excel;
class Index extends Controller
{
    public function importexcel()
    {
        $path  =  './uploads/cat.xls';
        halt(Excel::importexcel($path));
    }
}

封装好的Eextend扩展目录下Excel.php代码
在这里插入图片描述

<?php
namespace Excel;
//在Excel命名空间下引入了PHPExcel和PHPExcel_IOFactory,下次直接use Excel就可引入他俩
use PHPExcel;
use PHPExcel_IOFactory;

class Excel
{

//    读取Excel表格数据
    public  static function importexcel($path){
        // 判断文件是什么格式
        $type = pathinfo($path);
        $type = strtolower($type["extension"]);

        if ($type == 'xlsx') {
            $type = 'Excel2007';
        } elseif ($type == 'xls') {
            $type = 'Excel5';
        }
        //最长执行时间,php默认为30秒,这里设置为0秒的意思是保持等待直到程序执行完成
        ini_set('max_execution_time', '0');
        // 判断使用哪种格式
        $objReader = PHPExcel_IOFactory::createReader($type);
        $objPHPExcel = $objReader->load($path);

        $sheet = $objPHPExcel->getSheet(0);//获取工作薄
        // 取得总行数
        $highestRow = $sheet->getHighestRow();
        // 取得总列数
        $highestColumn = $sheet->getHighestColumn();
        //循环读取excel文件,读取一条,插入一条
        $data=array();
        //从第一行开始读取数据  这里类似冒泡算法
        for($j=1;$j<=$highestRow;$j++){
            //从A列读取数据
            for($k='A';$k<=$highestColumn;$k++){
                // 读取单元格
                $data[$j][]=$objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue();
            }
        }
        return $data;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值