使用PHPExcel解析Excel表格

安装类库

从GitHub上下载PHPExcel类库
地址:https://github.com/PHPOffice/PHPExcel

解压后将Classes文件夹移动到ThinkPHP的extend目录,并将其重命名为phpexcel

在项目中需要的地方添加引用

import('phpexcel.PHPExcel', EXTEND_PATH);

代码实现

<?php
namespace app\index\controller;

use think\Controller;

class Excel extends Controller
{

    // 测试 http://127.0.0.1:8083/index/excel/index
    public function index()
    {
        $path = "G:/student.xlsx";
        $data = self::readExcel($path);
        if (empty($data)) {
            $json = json_encode([
                'errcode'   => '20001',
                'errmsg'    => '没有解析到数据',
                'data'      => []
            ], JSON_UNESCAPED_UNICODE);
        } else {
            $json = json_encode([
                'errcode'   => '10000',
                'errmsg'    => '读取数据成功',
                'data'      => $data
            ], JSON_UNESCAPED_UNICODE);
        }
        return $json;
    }

    //PHPExcel解析Excel表格
    protected function readExcel($filePath)
    {
        // 引入类库
        import('phpexcel.PHPExcel', EXTEND_PATH);

        // 实例化对象
        if (strstr($filePath, '.xlsx')) {
            // 对应文件类型为 .xlsx
            $PHPReader = new \PHPExcel_Reader_Excel2007();
        } elseif (strstr($filePath, '.xls')) {
            // 对应文件类型为 .xls
            $PHPReader = new \PHPExcel_Reader_Excel5();
        } else {
            // 文件类型无法识别
            return false;
        }

        // 载入Excel文件
        $PHPExcel = $PHPReader->load($filePath);
        // 获得sheet1
        $sheet = $PHPExcel->getActiveSheet(0);
        // 当前sheet的最大行数
        $highestRow = $sheet->getHighestRow();
        // 获取Excel数据
        $arr = $sheet->toArray();

        // 解析
        $data = [];
        $length = count($arr);
        for ($i = 1; $i < $length; $i++) {
            // 为什么i从1开始?因为i=0是列标题!
            $data[$i-1] = [
                'stuNo' => $arr[$i][0],
                'name' => $arr[$i][1],
                'class' => $arr[$i][2]
            ];
        }

        // 返回数据
        return empty($data) ? [] : $data;
    }
}


查看运行结果

Excel中的内容为

在浏览器里访问,查看结果(此处获取的是json数据)

将json数据(通过web前端助手插件)格式化之后

可以看到已经解析出来的数据

补充:Chrome安装[Web前端助手]

点击下载web前端助手

打开Chrome的扩展程序

把下载的.crx插件拖入浏览器,即可安装

本文链接:https://www.cnblogs.com/connect/p/php-read-excel.html

posted @ 2019-01-27 12:03  varlemon  阅读(4223)  评论(0编辑  收藏  举报