今天看的是PHPExcel这个扩展库,Comporse 下载不下来,最后只能自己去github里面手动下载,但有一个问题就是下载下来的PHPExcel没有命名空间,所以框架里面的use根本引入不进去,这就变得很尴尬,最后看了Tp5的手册,扩展库里面有个手动引入的办法:

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>

转载于:https://www.cnblogs.com/MyIsLu/p/6830579.html

TP5.0 PHPExcel 数据表格导出导入(原)相关推荐

  1. TP5.0 PHPExcel 数据表格导出导入(引)

    TP5.0 PHPExcel 数据表格导出导入(引) 今天看的是PHPExcel这个扩展库,Comporse 下载不下来,最后只能自己去github里面手动下载,但有一个问题就是下载下来的PHPExc ...

  2. php导入导出xls表,TP5.0 PHPExcel 数据表格导出导入

    1.先在github里面下载PHPexcel这个类库 或者通过以下链接下载PHPexcel类库. http://www.php.cn/xiazai/leiku/1491 2.解压之后把它复制到exte ...

  3. Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(下)

    转载自:http://www.cnblogs.com/jyzhao/p/4530575.html 目的:指导项目侧自行进行简单的数据泵迁移工作. 本文实验环境:Oracle 11.2.0.4,利用数据 ...

  4. 数据泵导出导入物化视图(ORA-39083)

    数据泵导出导入物化视图(ORA-39083) 1.1  BLOG文档结构图 1.2  前言部分 1.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不 ...

  5. 数据泵导出导入物化视图

    数据泵导出导入物化视图 数据泵导出导入物化视图(ORA-39083) 1.1  BLOG文档结构图 1.2  前言部分 1.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能, ...

  6. Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(上)

    <Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(上)> <Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(下)> 目的:指导项 ...

  7. oracle11g 使用数据泵导出导入数据

    oracle11g 使用数据泵导出导入数据 终于搞定了 快写个笔记 记录下. 删除用户的时候提示已经登录了不能删除,这个需要把登录的session结束掉. select username,sid,se ...

  8. Postman 实现备份数据 Postman恢复数据 postman 导出导入数据 postman 导入导出数据

    Postman 实现备份数据 Postman恢复数据 postman 导出导入数据 postman 导入导出数据 一.需求描述 在使用postman调试接口时,若遇到内网的环境,无法通过账户同步数据: ...

  9. 使用bcp进行大数据量导出导入

    SQL Server的导出导入方式有:在SQL Server中提供了导入导出的界面操作. --还没有解决的问题  --1:使用BCP命令时如果导出的字段为空想替换为其它描述(比如替换成NULL)如何办 ...

最新文章

  1. 数据存储方式_寻找要操作数据的存储地址的过程称为寻址,几种寻址的方式分享...
  2. 模糊测试工具Simple Fuzzer
  3. 利用神器BTrace 追踪线上 Spring Boot应用运行时信息
  4. excel运行最多行数
  5. ThreadLocal介绍以及源码分析
  6. SNF快速开发平台MVC-自由排序组件
  7. linux perl 单例模式,Perl脚本学习经验(三)--Perl中ftp的使用
  8. Java LocalDate类| toString()方法与示例
  9. 基于MVC4+EasyUI的Web开发框架经验总结(6)--在页面中应用下拉列表的处理
  10. sql中 in 、not in 、exists、not exists 用法和差别
  11. Paravirtualization (半虚拟化PV) - Xen
  12. mysql 远程访问
  13. Twitter数据非API采集方法
  14. 为label或者textView添加placeHolder
  15. for input string:是什么原因出现的_「汽车空调异味」周期性出现:原因是什么呢?...
  16. centos7、Linux实现文件夹共享、Linux共享文件夹后无权限访问
  17. 摄影测量学习总结(较全面易懂)
  18. 基于JAVA的抽奖系统
  19. Corel VideoStudio X7 (64bit)安装
  20. Wiki使用技巧汇总

热门文章

  1. Total Defense Anti-Virus – 免费6个月
  2. Oracle,Mysql,Sqlserver数据库连接串(总爱忘,留着备用)
  3. centos安装docker详细步骤,如何配置阿里云镜像加速
  4. 加强网站安全、重构公司的门户网站项目(C# VS2003)
  5. 学flash就丢人吗?
  6. [转]国内Linux操作系统发行商分类溯源
  7. Zabbix自定义监控、自动报警
  8. 大学计算机相关理论,大学计算机理论基础 大学计算机基础理论题.doc
  9. Hive 之collect_list/collect_set(列转行)
  10. python set_Python的set集合详解