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中有一些公共的文件为了方便,我们会做一个公共文件,让不用的文件共同调用.为了禁止公共文件被非常单独调用,可以在文件上做一个常量,禁止非常调用:在公共 ...
随机推荐
- ZZ:git只clone仓库中指定子目录和指定文件的实现
原文链接: http://blog.csdn.net/xuyaqun/article/details/49275477 git目前唯一不能实现的是:不能像svn那样,针对子目录设置权限,这与git分布 ...
- Android开发 - 掌握ConstraintLayout(四)创建基本约束
上一篇我们介绍了编辑器的基本使用,本文我们介绍创建基本的约束. "约束"表示View之间的位置关系.当我们在ConstraintLayout布局中创建View时,如果我们没有添加任 ...
- 《http权威指南》读书笔记3
概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...
- python函数练习——个人信息修改
修改个人信息程序 在一个文件里存多个人的个人信息,如以下 1.输入用户名密码,正确后登录系统 ,打印 1. 修改个人信息 2. 打印个人信息 3. 修改密码 2.每个选项写一个方法 3.登录时输错3次 ...
- Spring 源码分析之 bean 依赖注入原理(注入属性)
最近在研究Spring bean 生命周期相关知识点以及源码,所以打算写一篇 Spring bean生命周期相关的文章,但是整理过程中发现涉及的点太多而且又很复杂,很难在一篇文章中把Spri ...
- Java language
1.Java开发环境: java编译运行过程: 1. 编译期:.java源文件,经过编译,生成.class字节码文件 2. 运行期:JVM加载.class并运行.class - 特点:跨平台.一次编程 ...
- shell中mail发邮件的问题
今天为了监控一下脚本,按照网上说的利用mail 发邮件,mail -s "error预警2" peien@1221.qq.com<'邮件内容',发现出现cc,不知道啥问题,也 ...
- 修改centos 7 系统时间
查看当前系统时间 date 修改当前系统时间 date -s "2018-2-22 19:10:30 查看硬件时间 hwclock --show 修改硬件时间 hwclock --set - ...
- Android模拟微信主页面的Demo
Android模拟微信主页面的Demo 效果图如下: 项目结构图如下: ContanctFragment: package com.demo.moniwexin; import android.app ...
- AWS EC2实例Ubuntu系统设置root用户密码并使用root/ubuntu用户登录
参考链接:http://www.wangchao.info/1137.html 注意:链接中写的简化了,其中重启服务的命令似乎不太适用,可能是不通用,我下面描述的方式亲测可行,如有其他疑问请留言: ...