安装类库

从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

使用PHPExcel解析Excel表格的更多相关文章

  1. JXL解析Excel表格内容到数据库

    java中常用的解析Excel表格的工具一种是POI一种是JXL,POI功能强大,相比JXL稍嫌复杂,对表格样式的处理非常好:而JXL解析简单方便,对中文支持比较好. 工作中解析Excel内容上传到数 ...

  2. ThinkPHP 3.2.3 使用 PHPExcel 处理 Excel 表格

    下载 PHPExcel(https://github.com/PHPOffice/PHPExcel) 把下载的 zip 包解压至 ./ThinkPHP/Library/Vendor 下 一.导入 Ex ...

  3. phpexcel导入excel表格

    html代码 <form action="{:U('Mall/updExcel')}" method="POST" enctype="multi ...

  4. Java使用POI解析Excel表格

    概述 Excel表格是常用的数据存储工具,项目中经常会遇到导入Excel和导出Excel的功能. 常见的Excel格式有xls和xlsx.07版本以后主要以基于XML的压缩格式作为默认文件格式xlsx ...

  5. php解析Excel表格并且导入MySQL数据库

    最近根据客户需求,需要增加一个导入Excel表格的功能,Excel中存放的是知识库中医知识的分类体系目录.是在thinkphp框架下编写的代码,用的是phpexcel第三方包.测试环境用的是xampp ...

  6. java后台读取/解析 excel表格

    需求描述 前台需要上传excel表格,提交到后台,后台解析并返回给前台,展示在前台页面上! 前台部分代码与界面 <th style="padding: 7px 1px;width:15 ...

  7. php:PHPExcel导出excel表格

    一.动态生成的内容如何能当成文件来下载呢? 方法:1.将Content-Type设置成application/octet-stream就可以了,即[header('Content-Type: appl ...

  8. PHPExcel导出excel表格

    if(!function_exists('exportExcel')){    //导出excel文件    function exportExcel($datas, $save_method='ht ...

  9. 解析excel表格为DataSet

    using System;using System.Collections.Generic;using System.Data;using System.Data.OleDb;using System ...

随机推荐

  1. Jupyter Notebook默认工作路径的修改

    相信每一个学习Python的童鞋,都尝试过Jupyter Notebook,所以我也就不多介绍,真的还不错哎这软件. 不过美中不足的,就是它的默认工作路径,每次打开都是系统盘的Administrato ...

  2. python3接收、解析邮件

    邮件接收 python3可以使用poplib.POP3进行邮件接收,具体如下: import poplib from email.parser import Parser def get_email( ...

  3. Python自定义异常及抛出异常

    """ 自定义异常 """ class MyException(Exception): # 继承异常类 def __init__(self, ...

  4. hadoop java上传文件

    import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.InputStream; impo ...

  5. [20180914]oracle 12c 表 full_hash_value如何计算.txt

    [20180914]oracle 12c 表 full_hash_value如何计算.txt --//昨天在12c下看表full_hash_value与11g的full_hash_value不同,不过 ...

  6. MySQL 8.0.11安装配置

    官网地址:https://dev.mysql.com/downloads/mysql/ 我这里是RHEL6.5的系统,因此选择RedHat 6 x86,64bit操作系统---下载第一个RPM Bun ...

  7. Zabbix Agent安装与卸载

    cmd /c "C:\zabbix\bin\win64\zabbix_agentd.exe -c c:\zabbix\conf\zabbix_agentd.win.conf -i" ...

  8. SQL Server 创建用户报错:消息 15023,级别 16,状态 1,第 1 行 用户、组或角色 'XXX' 在当前数据库中已存在。

    问题描述: 原因: 当数据库恢复到其他服务器时,原数据库中包含一组用户和权限,但可能没有相应的登录或者登录所关联的用户可能不是相同的用户. 这种情况可能会出现上面的问题.该问题是无法通过新建登录或者是 ...

  9. JavaScript—Date对象详情

    Date对象概述 javaScript 提供了 Date 类型来处理时间和日期.Date 对象内置一系列获取和设置日期时间信息的方法.(不是内置对象,需要自己new) javaScript 中的 Da ...

  10. 最简单的C#UDP通讯示例

    参考:https://www.cnblogs.com/zxyc2000/articles/2846662.html 和 https://www.cnblogs.com/mq0036/p/7302605 ...