ThinkPHP5.1 Excel 表的导入导出操作 (PHPExcel)

☞ 背景

  • 这两天在开发快递查询的功能时,涉及到了 Excel表导入MySQL 的操作,为了方便后期的快捷使用,在此整理一下 PHPExcelexcel 表导入导出的代码解决步骤,希望能帮到有需要的道友们...

框架:ThinkPHP5.1
类库:PHPExcel
技能:Composer,MySql

☞ 前期准备:PHPExcel 类库的获取

第一种方式为:使用 Composer 进行安装;
第二种方式为:直接到【Github·PHPOffice/PHPExcel】下载源包
后者需要注意,将压缩包解压后放到vendor目录,并且注意路径的正确引入
此处,只做第一种方式的指导参考 [建议学会Composer的简单使用,实在是太方便了]

  • 进入项目目录,输入命令: composer require phpoffice/phpexcel

    安装成功后,会注意到项目的vendor目录下,多出了一个phpoffice文件夹

☞ 如何将 Excel中的数据导入MySQL

除了参考我展示的步骤,也要注意下我的代码注释哦!

①. excel 文件的整理

首先要求用来导入MySQL 数据表的 excel文件中的内容要规整,对应于你的数据表

  • 鄙人将其放置于目录public\cms\file\bird_express.xlsx

以我要操作的 excel表为例,(==数据简单,可举一反三,自由拓展==):

②. 创建目标数据表

  • 以我的简答测试为例,表格设计如下:

    ③. MTPhpExcel类的使用

  • 首先引入所提供源码中的 MTPhpExcel.php
    下图即为我创建的 ==测试入口==,主要目的就是为了调用核心方法 readExcelFileToArray()
    在这里插入图片描述

    核心处理方法 readExcelFileToArray() 源码见附录

  • 运行代码后的结果如下:

☞ 如何将数据导出到Excel文件 ☜

  • 同理,我设计了一个测试方法,主要目的就是为了调用核心方法 outputDataToExcelFile()

    核心处理方法 outputDataToExcelFile() 源码见附录

  • 运行代码后,可以得到如下的一个 excel 表:

  • 【温馨提示:】

    1. 为了代码参考方便,鄙人尽量使其简洁化
    所以如果对于某列数据需要字体加粗、居中、变大等各种操作,可自行扩展
    2. 当前代码,未做图片格式的展示处理
    如有需要可阅读 phpexcel 文档规则,根据目标数据对应性处理即可 ...

    ☞ 附录

    >>>源码下载>>>

  • 主要使用的就是其中的 MTPhpExcel

☛ 参考文章

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 3

如何避免内存溢出问题

4年前 评论

老婊,该换PHPspreadsheet了

4年前 评论

@侧面 1,减少数据库查询,插入可以设置每满100条再执行事务插入, 如果操作太复杂可以分页处理

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!