今天看的是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>

TP5.0 PHPExcel 数据表格导出导入(原)的更多相关文章

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

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

  2. TP5.0 PHPExcel 数据表格导出(原)

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

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

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

  4. Oracle基础 数据泵导出/导入Expdp/impdp(转)

    一.EXPDP和IMPDP使用说明 Oracle Database 10g引入了最新的数据泵(Data Dump)技术,数据泵导出导入(EXPDP和IMPDP)的作用 1)实现逻辑备份和逻辑恢复. 2 ...

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

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

  6. PostgreSQL数据的导出导入 save your data!

    PostgreSQL数据的导出导入 导出PostgreSQL数据库中的数据: $ pg_dump -U postgres  -f mydatabase.sql  mydatabase 导入数据时首先创 ...

  7. PostgreSQL数据的导出导入

    PostgreSQL数据的导出导入 导出PostgreSQL数据库中的数据: $ pg_dump -U postgres  -f mydatabase.sql  mydatabase 导入数据时首先创 ...

  8. 数据泵导出/导入Expdp/impdp

    一下转自 http://blog.csdn.net/jionjionyoushen/article/details/6789686 数据泵导出/导入Expdp/impdp Oracle 10g引入了D ...

  9. linux mysql 数据库操作导入导出 数据表导出导入

    linux mysql 数据库操作导入导出 数据表导出导入 1,数据库导入 mysql -uroot -p show databases; create database newdb; use 数据库 ...

随机推荐

  1. Nginx处理请求的11个阶段(agentzh的Nginx 教程学习记录)

    Nginx 处理请求的过程一共划分为 11 个阶段,按照执行顺序依次是 post-read.server-rewrite.find-config.rewrite.post-rewrite.preacc ...

  2. linux下wrk的安装

    wrk是linux下开源的性能测试工具,并且只能在linux下运行,下面介绍下安装教程(以ubantu18.04环境为例): 1.预先安装git,如:apt install git 2.从git上拉取 ...

  3. LeetCode Weekly Contest 121

    上周因为感冒没有刷题,两个星期没有刷题,没手感了,思维也没有那么活跃了,只刷了一道,下个星期努力. 984. String Without AAA or BBB Given two integers  ...

  4. shell脚本-工作练习篇

    瞎扯时间 人的惰性真的很难去戒掉,每天工作下班回家后,只想瘫倒在床上,玩玩手游,刷刷抖音,甚至看看无聊至极的“爽文”,对于学习.看书啥的,完全提不起兴趣,也许正是因为如此,我才显得这么平庸而无趣吧.  ...

  5. [Python数据挖掘]第5章、挖掘建模(上)

    一.分类和回归 回归分析研究的范围大致如下: 1.逻辑回归 #逻辑回归 自动建模 import pandas as pd from sklearn.linear_model import Logist ...

  6. Git 版本还原命令

    转载:https://blog.csdn.net/yxlshk/article/details/79944535 1.需求场景: 在利用github实现多人协作开发项目的过程中,有时会出现错误提交的情 ...

  7. Oracle错误——ORA-39000:转储文件说明错误、ORA-39001:参数值无效、ORA-39088:文件名不能包含路径说明

    错误 在使用数据泵导入文件时,报错如下 Next 出错原因 在使用参数DUMPFILE指定文件名称时,不能包含路径信息,只可以使用文件名称 Next 解决办法 在使用数据泵进行数据导入导出前,必须要创 ...

  8. Javascript的千分位和去除千分位

    1.转成千分位,保留两位 comdify(n) { let num = Number(n); let re = /\d{1,3}(?=(\d{3})+$)/g; let n1 = num.toFixe ...

  9. logstash filter geoip 转换IP为详细地址等内容。

    使用logstash geoip筛选器可以将ip地址解析为更丰富的内容. 结果类似于这样: "geoip": { "city_name": "Ürüm ...

  10. 阿里云ECS相关

    RAM授权: https://help.aliyun.com/document_detail/28639.html 安全组: https://jingyan.baidu.com/article/afd ...