thinkphp生成Excel文件的方法

老头子

一、安装

1、切换到项目根目录,使用composer进行安装

composer require phpoffice/phpexcel

下面这样就说明安装好了

image.png

二、使用方法

将下面的代码放到你的控制器里,然后在其他方法调用,怎样方便怎样来。

友情提示:在线上服务器的时候,保存excel文件的地址需要提前在服务器手动创建上,不然或报错!

<?php
/**
 * @param $username 创建人
 * @param $data 二维数组
 * @return string excel保存路径
 * @throws \PHPExcel_Exception
 * @throws \PHPExcel_Reader_Exception
 * @throws \PHPExcel_Writer_Exception
 */
public function createExcel($username='',$data=[]){
     $objPHPExcel = new \PHPExcel();
     $objPHPExcel->getProperties()
         ->setCreator($username)               //创建人
         ->setLastModifiedBy($username)             //最后修改人
         ->setTitle("Office 2007 XLSX Test Document")     //设置标题
         ->setSubject("Office 2007 XLSX Test Document")       //设置主题
         ->setDescription("公司业绩")             //设置备注
         ->setKeywords( "office 2007 openxml php")       //设置关键字
         ->setCategory( "业绩统计");               //设置类别
    $objPHPExcel->setActiveSheetIndex(0)             //设置第一个内置表(一个xls文件里可以有多个表)为活动的
    ->setCellValue( 'A1', '公司名称' )
        ->setCellValue( 'B1', '金额' )
        ->setCellValue( 'C1', '时间' );
    //激活当前表 //  A1 B1 C1  和  A B C  对应上,字段改为自己的就行
    foreach ($data as $k=>$v){
        $jishu=$k+2;
        $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A'.$jishu,$v['company_name']);
        $objPHPExcel->setActiveSheetIndex(0)->setCellValue('B'.$jishu,$v['money']);
        $objPHPExcel->setActiveSheetIndex(0)->setCellValue('C'.$jishu,$v['create_time']);
    }
     $objPHPExcel->setActiveSheetIndex(0);
     ob_end_clean();//清除缓冲区,避免乱码
     //最后只需要生成Excel或者提示下载即可
     //生成Excel,并自定义保存路径
     //"Excel2007"生成2007版本的xlsx,"Excel5"生成2003版本的xls
     $name=date("YmdHis",time());
     $path="file/storage/company/公司业绩$name.xls";
     $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel5');
     $objWriter->save($path);
     return '/'.$path;//返回生成的excel 
 }
文章版权声明:除非注明,否则均为老头子博客原创文章,转载或复制请以超链接形式并注明出处。

您需要 登录账户 后才能发表评论

发表评论

快捷回复: 表情:
评论列表 (暂无评论,1371人围观)

还没有评论,来说两句吧...

取消
微信二维码
微信二维码
支付宝二维码