使用PHPExcel解析Excel表格

时间:2024-01-23 21:54:05

安装类库

从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