菜鸟之TP5引入Phpexcel

从昨天中午一直在研究如何在Tp5中引入Phpexcel,在网上搜索了很多资料,发现目前引入Phpexcel总的来说是两种

1.利用composer

      这种方法很麻烦,要安装先安装composer,然后还要上官网下载composer.phar文件,然后还要创建bat文件,最后,等你成功安装composer后,使用composer require phpoffice/phpexcel,它显示失败,然后吧,我执行命令,composer update让它更新一下,之后又执行composer require phpoffice/phpexcel,终于看见i.nstall phpexcel,突然又弹出对话框 php cli停止工作。oh no 崩溃感觉有没有~~~~~无数乌鸦在头上飘。

2.另外一种就是我接下来要讲的从网上下载Phpexcel文件夹,把里面的classes  文件夹重命名为 Phpexcel,然后把该文件夹放入项目根目录的extend内。


菜鸟之TP5引入Phpexcel_第1张图片


在控制器中的代码是:

public functiontest(){

/**

* tp5使用excel导出

*@param

*@authorstaitc7  *@returnmixed

*/

$name='测试导出';

$header=['表头A','表头B'];

$data=[

['嘿嘿','heihei'],

['哈哈','haha']

];

excelExport($name,$header,$data);

}


在common.php下的代码是:

//注意\think\Request::instance()->time()不能单纯是 Request::instance()->time()

//要导入类,否则会出错,以为tp5强制使用命名空间think\Loader::import('PHPExcel.PHPExcel');

functionexcelExport($fileName='',$headArr= [],$data= []) {

$fileName.="_".date("Y_m_d", \think\Request::instance()->time()) .".xls";

\think\Loader::import('PHPExcel.PHPExcel');

$objPHPExcel=new\PHPExcel();

$objPHPExcel->getProperties();

$key=ord("A");//设置表头

foreach($headArras$v) {

$colum=chr($key);

$objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum.'1',$v);

$objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum.'1',$v);

$key+=1;

}

$column=2;

$objActSheet=$objPHPExcel->getActiveSheet();

foreach($dataas$key=>$rows) {//行写入

$span=ord("A");

foreach($rowsas$keyName=>$value) {//列写入

$objActSheet->setCellValue(chr($span) .$column,$value);

$span++;

}

$column++;

}

$fileName=iconv("utf-8","gb2312",$fileName);//重命名表

$objPHPExcel->setActiveSheetIndex(0);//设置活动单指数到第一个表,所以Excel打开这是第一个表

header('Content-Type: application/vnd.ms-excel');

header("Content-Disposition: attachment;filename='$fileName'");

header('Cache-Control: max-age=0');

$objWriter= \PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel5');

$objWriter->save('php://output');//文件通过浏览器下载

exit();

}


最后效果


菜鸟之TP5引入Phpexcel_第2张图片

你可能感兴趣的:(菜鸟之TP5引入Phpexcel)