TP5手动引入PHPEXCEL的方法
1、先在github里面下载PHPexcel这个类库
2、解压之后把它复制到extend里面
控制器代码如下:

1 <?php
2 /**
3 * Created by PhpStorm.
4 * User: luxiao
5 * Date: 2017/5/8
6 * Time: 16:49
7 */
8 namespace app\index\controller;
9
10 use think\Loader;
11 use think\Controller;
12
13 class Excel extends Controller
14 {
15 function excel()
16 {
17 $path = dirname(__FILE__); //找到当前脚本所在路径
18 Loader::import('PHPExcel.Classes.PHPExcel'); //手动引入PHPExcel.php
19 Loader::import('PHPExcel.Classes.PHPExcel.IOFactory.PHPExcel_IOFactory'); //引入IOFactory.php 文件里面的PHPExcel_IOFactory这个类
20 $PHPExcel = new \PHPExcel(); //实例化
21
22 $PHPSheet = $PHPExcel->getActiveSheet();
23 $PHPSheet->setTitle("demo"); //给当前活动sheet设置名称
24 $PHPSheet->setCellValue("A1","姓名")->setCellValue("B1","分数");//表格数据
25 $PHPSheet->setCellValue("A2","张三")->setCellValue("B2","2121");//表格数据
26 $PHPWriter = \PHPExcel_IOFactory::createWriter($PHPExcel,"Excel2007"); //创建生成的格式
27 header('Content-Disposition: attachment;filename="表单数据.xlsx"'); //下载下来的表格名
28 header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
29 $PHPWriter->save("php://output"); //表示在$path路径下面生成demo.xlsx文件
30 }
31 }

调用excel方法就可以生成一个表格了,后续的根据自己的需要自己去写代码.
PHPexcel 表格数据导入数据库 city 表,在这之前自己先创建好表单,我这次用的都是地址数据表做的测试:

1 function inserExcel()
2 {
3 Loader::import('PHPExcel.Classes.PHPExcel');
4 Loader::import('PHPExcel.Classes.PHPExcel.IOFactory.PHPExcel_IOFactory');
5 Loader::import('PHPExcel.Classes.PHPExcel.Reader.Excel5');
6 //获取表单上传文件
7 $file = request()->file('excel');
8 $info = $file->validate(['ext' => 'xlsx'])->move(ROOT_PATH . 'public' . DS . 'uploads'); //上传验证后缀名,以及上传之后移动的地址
9 if ($info) {
10 // echo $info->getFilename();
11 $exclePath = $info->getSaveName(); //获取文件名
12 $file_name = ROOT_PATH . 'public' . DS . 'uploads' . DS . $exclePath; //上传文件的地址
13 $objReader =\PHPExcel_IOFactory::createReader('Excel2007');
14 $obj_PHPExcel =$objReader->load($file_name, $encode = 'utf-8'); //加载文件内容,编码utf-8
15 echo "<pre>";
16 $excel_array=$obj_PHPExcel->getsheet(0)->toArray(); //转换为数组格式
17 array_shift($excel_array); //删除第一个数组(标题);
18 $city = [];
19 foreach($excel_array as $k=>$v) {
20 $city[$k]['Id'] = $v[0];
21 $city[$k]['code'] = $v[1];
22 $city[$k]['path'] = $v[2];
23 $city[$k]['pcode'] = $v[3];
24 $city[$k]['name'] = $v[4];
25 }
26 Db::name('city')->insertAll($city); //批量插入数据
27 } else {
28 echo $file->getError();
29 }

前端代码:

1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <title>Title</title>
6 </head>
7 <body>
8 <form action="http://localhost/chexian5.0/index.php/index/excel/intoexcel" enctype="multipart/form-data" method="post">
9 <input type="file" name="excel" />
10 <input type="submit" value="导入">
11 </form>
12 </body>
13 </html>

TP5手动引入PHPEXCEL的方法的更多相关文章
- TP5 中引入第三方类库
通过了解tp5的目录结构,我们知道其中有两个目录是纺织扩展类库文件的. extend是放置自定义或者其他类文件的. vendor目录是放置composer类库文件的. 当我们的第三方类库文件是下载的, ...
- vue-cli3.0以上项目中引入jquery的方法
这里配置的是vue-cli3.0引入jquery的方法,不是vue-cli2.0的配置方法 一.安装jquery npm install jquery --save 二.在vue.config.js ...
- thinkphp引入PHPExcel类---thinkPHP类库扩展-----引入没有采用命名空间的类库
最近项目中遇到引入PHPExcel第三方类库 但是下载的phpExcel类没有命名空间,而且所有接口文件的命名都是以.php结尾 而不是tp中的.class.php 解决办法很简单:在引入没有采用命 ...
- CSS系列:在HTML中引入CSS的方法
HTML与CSS是两个作用不同的语言,它们同时对一个网页产生作用,因此必须将CSS与HTML链接在一起使用.在HTML中,引入CSS的方法主要有4种:行内式.内嵌式.导入式和链接式. 1. 行内式 行 ...
- 自己实现简单的AOP(二)引入Attribute 为方法指定增强对象
话续前文 : 自己实现简单的AOP(一)简介 在前一篇文章中,对AOP的实现方式做了一个简单介绍.接下来,引入Attribute 为方法指定增强对象,由此实现一个简单的AOP. 注意:指定的是增强对象 ...
- Magento后台手动修改订单状态方法及手动修改方法php
订单详细内容页手动修改订单状态方法: 打开此文件:app\design\adminhtml\default\default\template\sales\order\view\history.phtm ...
- tp5中的一些小方法
// 当使用一个新页面替换当前页面的body后,body刷新了,所选择的select值就不能保存住,解决方法如下: 作业题目<select> <option>--请选择--&l ...
- Windows服务的手动添加和删除方法
Windows服务的手动添加和删除方法 服务,是指执行指定系统功能的程序.例程或进程,以便支持其他程序,尤其是低层(接近硬件)程序.其实,服务就是一种特殊的应用程序,它从服务启动开始就一直处于运行状态 ...
- php中禁止非法调用和硬路径引入文件的方法
php中禁止非法调用和硬路径引入文件的方法 在php中有一些公共的文件为了方便,我们会做一个公共文件,让不用的文件共同调用.为了禁止公共文件被非常单独调用,可以在文件上做一个常量,禁止非常调用:在公共 ...
随机推荐
- Redis 基础、高级特性与性能调优
本文将从Redis的基本特性入手,通过讲述Redis的数据结构和主要命令对Redis的基本能力进行直观介绍.之后概览Redis提供的高级能力,并在部署.维护.性能调优等多个方面进行更深入的介绍和指导. ...
- Trinity的分步运行
当使用Trinity组装时,如果数据量过大,可以考虑使用--min_kmer_cov 2参数丢弃uniquely occurring kmer, 从而降低内存消耗 设置--no_distributed ...
- python pickle模块的使用/将python数据对象序列化保存到文件中
# Python 使用pickle/cPickle模块进行数据的序列化 """Python序列化的概念很简单.内存里面有一个数据结构, 你希望将它保存下来,重用,或者发送 ...
- mybatis 控制台打印sql语句
其实很简单,打印SQL只需要加一个setting就可以了.亲测可用. mybatis-config.xml: <settings> <setting name=&quo ...
- SSH框架搭建过程详解
Spring.Struts2.Hibernate框架: 具体三大框架的知识以前的文章写过,在这里整合 Spring框架知识:http://www.cnblogs.com/xuyiqing/catego ...
- 学生管理系统(springMVC)
<Java Web编程>课程设计 ...
- C# 获取Header中的token值
public CurrentUser currentUser { get { CurrentUser result = new CurrentUser(); //jwt 解密token IJsonSe ...
- numpy中array和asarray的区别
array和asarray都可以将结构数据转化为ndarray,但是主要区别就是当数据源是ndarray时,array仍然会copy出一个副本,占用新的内存,但asarray不会. 举例说明: imp ...
- Spring Boot 核心配置文件 bootstrap & application 详解。
用过 Spring Boot 的都知道在 Spring Boot 中有以下两种配置文件 bootstrap (.yml 或者 .properties) application (.yml 或者 .pr ...
- AB(ApacheBench)工具 -- 压力测试
服务器负载太大而影响程序效率也是很常见的,Apache服务器自带有一个叫AB(ApacheBench)的工具,可以对服务器进行负载测试 同时美多商城的秒杀功能也会被高负载影响,从而导致超卖现象 安装x ...