安裝類庫
從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插件拖入瀏覽器,即可安裝

