在thinkphp 5.1.x后vendor的使用方法发生变化,文档有没有详细说明。本文是自己在thinkphp5.1.9下测试成功。
thinkPHP5.1.9 vendor 第三方库的使用

1、在thinkPHP 5.1.X新版取消了Loader::import方法以及import和vendor助手函数,推荐全面采用命名空间方式的类以及自动加载机制,如果必须使用请直接改为php内置的include或者require语法。
原来的import("Vendor.Classes.PHPExcel.IOFactory");或Vendor('phpoffice.phpexcel.Classes.PHPExcel.IOFactory');方法已经不再使用。
2、在thinkPHP 5.1.X中的处理方法
2.1、必须使用composer方式安装第三方模块。否则在vendor目录下的内容无法自动加载。
这个可以通过查看K:\xampp\htdocs\tp51\vendor\composer目录下的installed.json文件知道哪些可以自动加载。
在这里手工考入的文件无法自动加载。
例子:
在K:\xampp\htdocs\tp51\目录下执行:
composer require phpoffice/phpspreadsheet

composer require phpoffice/phpexcel
安装两个第三方电子表处理文件。
安装在K:\xampp\htdocs\tp51\vendor\phpoffice目录下。
2.2在程序中使用
2.2.1、phpexcel使用
在程序文件头部加入:

use PHPExcel_IOFactory;
use PHPExcel;

在程序中使用:

$table='xztxl';
        $file='xztxl';
        $data= Db::name('xztxl')->order('listorder asc,dep asc')->select();
        error_reporting(E_ALL);
        date_default_timezone_set('Asia/chongqing');
        $objPHPExcel = new \PHPExcel();
        /*设置excel的属性*/
        $objPHPExcel->getProperties()->setCreator("aaa")//创建人
        ->setLastModifiedBy("aaa")//最后修改人
        ->setKeywords("excel")//关键字
        ->setCategory("result file");//种类
        //第一行数据
        $objPHPExcel->setActiveSheetIndex(0);
        $active = $objPHPExcel->getActiveSheet();
        $field_titles=array(
        'dep'=>'部门',
        'room'=>'房间号',
        'officep1'=>'外线号码',
        'officep2'=>'短号',
        'pname'=>'人员名称',
        'mobile'=>'手机号',
        'mobile_s'=>'手机短号',
        'listorder'=>'排列序号',
        );
        $i=0;
        foreach($field_titles as $key=>$name){
            $ck = num2alpha($i++) . '1';
            $active->setCellValue($ck, $name);
        }
        //填充数据
        foreach($data as $k => $v){
            $k=$k+1;
            $num=$k+1;//数据从第二行开始录入
            $objPHPExcel->setActiveSheetIndex(0);
            $i=0;
            foreach($field_titles as $key=>$name){
                $ck = num2alpha($i++) . $num;
                $active->setCellValue($ck, $v[$key]);
            }
        }
        $objPHPExcel->getActiveSheet()->setTitle($table);
        $objPHPExcel->setActiveSheetIndex(0);
        header('Content-Type: application/vnd.ms-excel');
        header('Content-Disposition: attachment;filename="'.$file.'.xls"');
        header('Cache-Control: max-age=0');
        $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
        $objWriter->save('php://output');

2.2.2、phpspreadsheet使用
在程序头部

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use PhpOffice\PhpSpreadsheet\IOFactory;

处理程序:

$table='xztxl';
        $file='xztxl';
        $data= Db::name('xztxl')->order('listorder asc,dep asc')->select();
        $spreadsheet = new Spreadsheet();
        $spreadsheet->getProperties()->setCreator("aaa")//创建人
        ->setLastModifiedBy("aaa")//最后修改人
        ->setKeywords("excel")//关键字
        ->setCategory("result file");//种类        
        $sheet = $spreadsheet->getActiveSheet();
                //第一行数据
        $sheet->getColumnDimension('A')->setAutoSize(true);
        $sheet->getColumnDimension('B')->setAutoSize(true);        
        $sheet->getColumnDimension('C')->setAutoSize(true);        
        $sheet->getColumnDimension('D')->setAutoSize(true);        
        $sheet->getColumnDimension('E')->setAutoSize(true);        
        $sheet->getColumnDimension('F')->setAutoSize(true);        
        $sheet->getColumnDimension('G')->setAutoSize(true);        
        $sheet->getColumnDimension('H')->setAutoSize(true);        
        $field_titles=array(
        'dep'=>'部门',
        'room'=>'房间号',
        'officep1'=>'外线号码',
        'officep2'=>'短号',
        'pname'=>'人员名称',
        'mobile'=>'手机号',
        'mobile_s'=>'手机短号',
        'listorder'=>'排列序号',
        );
        $i=0;
        foreach($field_titles as $key=>$name){
            $ck = num2alpha($i++) . '1';
            $sheet->setCellValue($ck, $name);
        }
        //填充数据
        foreach($data as $k => $v){
            $k=$k+1;
            $num=$k+1;//数据从第二行开始录入
            $i=0;
            foreach($field_titles as $key=>$name){
                $ck = num2alpha($i++) . $num;
                $sheet->setCellValue($ck, $v[$key]);
            }
        }
        $sheet->setTitle('通讯录');
        $writer = new Xlsx($spreadsheet);
        //$writer->save('k:/hello world.xlsx');
        header('Content-Type: application/vnd.ms-excel');
        header('Content-Disposition: attachment;filename="'.'hello world'.'.xlsx"');
        header('Cache-Control: max-age=0');
        $writer->save('php://output');

具体操作可以查看安装目录下的例子文件。

转自:http://www.thinkphp.cn/code/4269.html

thinkPHP5.1.9 vendor 第三方库的使用相关推荐

  1. TP3.2的删除缓存与引入第三方库的问题(二)

    基本每天都会遇到新的问题,不记录下来是在是有点亏.以下内容也是在做项目的时候碰到,然后百度搜索答案,记到记事本上的,在此分享给大家. 一.关于删除TP框架的缓存问题 TP的缓存不仅仅局限于runtim ...

  2. configure 查找依赖库_Rust在编译Android的库时,如何设定依赖的第三方库引用的C/C++的动态库的搜索路径?...

    谢邀.不懂android,也不懂OpenCL.但是我尝试了解了一下你的问题. 既然你用了第三方库,那就得查源码了.翻开ocl 库的源码搜android关键字,很容易定位到下面代码. #https:// ...

  3. Android中集成第三方库的方法和问题

    Android中集成第三方库的方法和问题 声明: 1. 本文參考了网上同学们的现有成果,在此表示感谢,參考资料在文后有链接. 2. 本文的重点在第三部分,是在开发中遇到的问题及解决的方法.第一,第二部 ...

  4. Golang-常用第三方库

    Golang_学习笔记 goleak--Goroutine 泄漏防治神器 Golang 命令行工具--urfave/cli 用法 Flag 参考文档 Golang处理Excel 微服务 请求路由-mu ...

  5. 使用Composer管理项目第三方库文件

    Composer 前言 最近看了php之道,作为一个现代phper,开发的时候跟的上潮流,而不是因循守旧,停留在模板解析语言阶段,扯远了-最近内部在搭建一个订单数据中心项目,总的需求就是同步商城跟管易 ...

  6. webpack 如何抽离公共代码和第三方库?

    假设有下面三种场景 场景一:index.js 和 other.js 文件同时引入 common.js 文件,打包的时候 index.js 和 other.js 中的 common.js 会打包两次.这 ...

  7. 1、go的GOPATH、GOROOT、第三方库学习

    文章目录 一.GOPATH 和 GOROOT 1.1 GOPATH 和 GOROOT 区别 1.2 查看 golang 的环境变量 1.3 使用 go run 执行某个文件 二.GOPATH 介绍 2 ...

  8. Go 学习笔记(60)— Go 第三方库之 go-redis(初始化 redis、操作 string、操作 list、操作 set、操作 hset)

    1. 第三方库 go-redis 因为 Go 标准库中是没提供 redis 的库,所以我们选择用 go-redis 这个第三方库.源码地址为 https://github.com/go-redis/r ...

  9. Go 学习笔记(56)— Go 第三方库 sqlx (操作数据库)

    1. 安装数据库 在 Go 标准库中是没有数据库驱动,只提供了驱动接口,有很多第三方实现了驱动,以下两种选择我们都可以进行操作,在本文中选择 sqlx . 第三方库 MySQL 驱动库: go-sql ...

最新文章

  1. 自学python推荐书籍2019-2019年Python入门书籍推荐
  2. SPQuery查询语法介绍
  3. 线程安全与可重入函数
  4. 中国人民公安大学网络对抗技术作业一
  5. (三)用docker-compose部署postgres+ postgis
  6. ARM Cortex-M3相比于ARM其他系列微控制器的优势和特点
  7. “约见”面试官系列之常见面试题第四十三篇之页面输入url之后发生了什么?(建议收藏)
  8. 怎样把照片中的头像扶正_微信头像用对了,2020运气差不了
  9. Introducing Blackle, the energy saving search
  10. 苹果cmsV10资源站模板
  11. 下行文格式图片_通知的格式及范文图片_通知格式 通知的格式及范文
  12. DM6437烧写总结
  13. 一个简单的if控制语句
  14. linux下rtc时间不准,Linux中系统时间和RTC时间的关系
  15. CIAA 网络安全模型 — 数据传输安全
  16. [转]开源大数据处理工具汇总
  17. 修改数据库表字段长度
  18. Markdown - 做好看的笔记
  19. 静态时序分析(sta)/动态时序分析(dta)
  20. 二、3【FPGA】如何点亮LED灯

热门文章

  1. 【C++基础】++i和i++
  2. Android提醒微技巧,你真的了解Dialog、Toast和Snackbar吗?
  3. 汇编语言对显存直接输出字符串
  4. JavaScript的特殊函数
  5. gridView里如何添加详情按钮,点击它可以转到另一页,以获取该行的详细信息。
  6. 最大子序列、最长递增子序列、最长公共子串、最长公共子序列、字符串编辑距离
  7. 怎么将导出的sql文件再次导入到数据库?
  8. mybaits四-2:模糊查询
  9. springmvc九:spring mvc 简单介绍
  10. mybaits五:主键的自增