php分析excel,使用PHPExcel解析Excel表格

安装类库

8d9e31126450104fce197c5e7d085e57.png

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

d31f6c6e956b714fa1afea80a7590747.png

0d6e0072380ea9506ea0f6c84ffd3b64.png

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

import('phpexcel.PHPExcel', EXTEND_PATH);

代码实现

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

e6fa7d16081985f7fa9e74964d584e7e.png

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

f99528064d893a2e51972f4c0c9e411e.png

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

fad192e0efa9d109256dc926e9cce709.png

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

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

打开Chrome的扩展程序

761ad8ef407cd344776b8082870f92ba.png

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

cc368c288e5251cb2f802ba85fe5bf2a.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值