安装类库

从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. (网页)websocket后台调用Service层

    百度论坛里面有很多好的方法,借鉴. 重点:因为项目是StringBoot所以我用的是下面的方法很好使: Service.... service = (Service....) ContextLoade ...

  2. 在windows下如何快速搭建web.py开发框架

    在windows下如何快速搭建web.py开发框架 用Python进行web开发的话有很多框架供选择,比如最出名的Django,tornado等,除了这些框架之外,有一个轻量级的框架使用起来也是非常方 ...

  3. JS 文本框格式化

    页面: <script src="http://libs.baidu.com/jquery/1.9.1/jquery.min.js"></script> & ...

  4. UnrealEd3视图导航及常用快捷键

    本博客使用的版本:2010-08   [更多其他的UE3版本][tps所用版本: 2011-02]     [最新的UE3版本 -- 2015-02] [unreal engine wiki  中文w ...

  5. 商品描述里包含了英文双引号,ERP无法同步菜品信息

    1. 2.因菜品描述里包含英文双引号,破坏了json格式,导致json格式错乱,ERP无法解析,所以无法同步数据.

  6. [20181220]使用提示OR_EXPAND优化.txt

    [20181220]使用提示OR_EXPAND优化.txt --//链接http://www.itpub.net/thread-2107240-2-1.html,http://www.itpub.ne ...

  7. mssql sqlerver 脚本 计算数据表的结余数的方法分享

    转自:http://www.maomao365.com/?p=5710 摘要:今天接到一个需求,有一张数据表,记录的是消费明细数据,现在需要做一个累计结余,记录每次的数据结余合计,下文将展示一种sql ...

  8. Android Studio插件GsonFormat

    GsonFormat插件用于在androidStudio 根据json自动生成class的字段和方法,极大提高了开发效率 一.安装GsonFormat插件 二.重启Android Studio,新建一 ...

  9. Linux内存描述之概述--Linux内存管理(一)

    1 前景回顾 1.1 UMA和NUMA两种模型 共享存储型多处理机有两种模型 均匀存储器存取(Uniform-Memory-Access,简称UMA)模型 将可用内存以连续方式组织起来, 非均匀存储器 ...

  10. Lua保留指定小数位数

    默认会四舍五入 比如:%0.2f 会四舍五入后,保留小数点后2位 print(string.format("%.1f",0.26)) ---会输出0.3,而不是0.2 Lua保留一 ...