zoukankan      html  css  js  c++  java
  • 使用PHPExcel解析Excel表格

    安装类库

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

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

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

    import('phpexcel.PHPExcel', EXTEND_PATH);
    

    代码实现

    <?php
    namespace appindexcontroller;
    
    use thinkController;
    
    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

  • 相关阅读:
    Oracle重建表索引及手工收集统计信息
    VirtualBox虚拟机安装MSDOS和MINIX2.0.0双系统
    odp.net以及oracle oledb安装
    Oralce常用维护命令
    Sales_item
    IBM MQ Reason 2538(MQRC_HOST_NOT_AVAILABLE) 错误原因一例
    Unable to create the store directory. (Exception from HRESULT: 0x80131468)
    WMS函数组:13.WMS入库BAPI
    WMS函数组:12.批量入库物料移动凭证
    WMS函数组:11.交货单取金额
  • 原文地址:https://www.cnblogs.com/connect/p/php-read-excel.html
Copyright © 2011-2022 走看看