使用PHPExcel解析Excel表格

时间:2024-01-19 21:50:32

安装类库

从GitHub上下载PHPExcel类库

地址:https://github.com/PHPOffice/PHPExcel

使用PHPExcel解析Excel表格

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

使用PHPExcel解析Excel表格

使用PHPExcel解析Excel表格

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

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中的内容为

使用PHPExcel解析Excel表格

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

使用PHPExcel解析Excel表格

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

使用PHPExcel解析Excel表格

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

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

点击下载web前端助手

打开Chrome的扩展程序

使用PHPExcel解析Excel表格

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

使用PHPExcel解析Excel表格

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