使用PHPExcel解析Excel表格

安装类库

从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

原文地址:https://www.cnblogs.com/connect/p/php-read-excel.html

时间: 2024-10-26 13:52:46

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

【PHP】PHP使用PHPExcel生成Excel表格文件(附带随机生成英文名函数)

[PHP]PHP使用PHPExcel生成Excel表格文件(附带随机生成英文名函数) 前言 由于业务需要,我们需要从业务中汇总数据,并生成Excel文件. 思路是这样的 PHP要导出Excel表格文件->找一个好用的第三方库吧->在Composer的Packages里找一个吧->PHPExcel这么多收藏,就它了! PHPExcel 概述 PHPExcel is a library written in pure PHP and providing a set of classes th

ThinkPHP 3.2.3 使用 PHPExcel 处理 Excel 表格

下载 PHPExcel(https://github.com/PHPOffice/PHPExcel) 把下载的 zip 包解压至 ./ThinkPHP/Library/Vendor 下 一.导入 Excel 数据 控制器自定,这里用 IndexController.class.php <?php namespace Home\Controller; use Think\Controller; class IndexController extends Controller { // 导入 Exc

phpexcel导入excel表格

html代码 <form action="{:U('Mall/updExcel')}" method="POST" enctype="multipart/form-data"> //提交form表单到Mall控制器下的upExcel方法中 <div style="float:left;width:41%;"> <div style="float:left;"> <i

JS-XLS/X读取和解析Excel表格文件(xls/xlsx)的JavaScript插件

最近有一个要求,我的一个项目中解析Excel文件(与xls/xlsx扩展)在浏览器(使用JavaScript当然).所以我在网上看了一下,发现了这2个有用的库: js-xls js-xlsx 让我们看看他们是如何工作的. 兼容性 支持读取文件格式 Excel 2007+ XML Formats (XLSX/XLSM) Excel 2007+ Binary Format (XLSB) Excel 2003-2004 XML Format (XML "SpreadsheetML") Exc

基于PHPExcel 导出Excel表格

下载PHPExcel源码:http://phpexcel.codeplex.com/       只要 PHPExcel_1.8.0_doc\Classes 目录下所有文件即可 <?php require_once("../db_config.php"); require_once("Classes/PHPExcel.php"); include("Classes/PHPExcel/IOFactory.php"); //$id=$_GET[

PHPExcel导出excel表格

if(!function_exists('exportExcel')){    //导出excel文件    function exportExcel($datas, $save_method='http', $save_path=''){        set_time_limit(0);        error_reporting(E_ALL);        ini_set('display_errors', TRUE);        ini_set('display_startup_

解析excel表格为DataSet

using System;using System.Collections.Generic;using System.Data;using System.Data.OleDb;using System.Linq;using System.Text;using Log;namespace Common{ public class ExcelInputHelper { public static ExcelInputHelper Self = new ExcelInputHelper(); publ

PHPexcel 将excel表格数据导入数据库

// index.php<form name="frm1" enctype="multipart/form-data" action="insertdb.php" method="post">   <input name="filename" type="file" /><input name="submit" type="su

phpexcel获取excel表格内容

excel表格式: 代码: $objPHPExcel=PHPExcel_IOFactory::load($excelFilePath);//$file_url即Excel文件的路径 $sheet=$objPHPExcel->getSheet(0);//获取第一个工作表 $highestRow=$sheet->getHighestRow();//取得总行数 $highestColumn=$sheet->getHighestColumn(); //取得总列数 $ChangeDatas = [