加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

thinkPHP5.1.9 vendor 第三方库的使用

发布时间:2020-12-14 13:57:53 所属栏目:大数据 来源:网络整理
导读:在thinkphp 5.1.x后vendor的使用方法发生变化,文档有没有详细说明。本文是自己在thinkphp5.1.9下测试成功。 thinkPHP5.1.9 vendor 第三方库的使用 1、在thinkPHP 5.1.X新版取消了Loader::import方法以及import和vendor助手函数,推荐全面采用命名空间方式的

在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:xampphtdocstp51vendorcomposer目录下的installed.json文件知道哪些可以自动加载。


在这里手工考入的文件无法自动加载。


例子:


在K:xampphtdocstp51目录下执行:


composer require phpoffice/phpspreadsheet


composer require phpoffice/phpexcel


安装两个第三方电子表处理文件。


安装在K:xampphtdocstp51vendorphpoffice目录下。


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 PhpOfficePhpSpreadsheetSpreadsheet;


use PhpOfficePhpSpreadsheetWriterXlsx;


use PhpOfficePhpSpreadsheetIOFactory;

处理程序:

$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'=>'部门',


? ? ? ? );


? ? ? ? $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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读