使用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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM