Yii2框架中添加扩展PHPExcel或PHPMailer等

Yii2中所有文件的引用都是通过命名空间来的,这里只主要解决命名空间的问题即可

添加中间类LExcelHelper,假设phpexcel的文件夹的lib下,则类LExcelHelper应放在在lib下, 内容如下:

namespace XXX\lib;
include_once 'PHPExcel/Classes/PHPExcel.php';

class LExcelHelper extends \PHPExcel
{
    

}


使用PHPExcel的时候就直接new对象LExcelHelper

$objExcel = new LExcelHelper();
$objWriter = new \PHPExcel_Writer_Excel5($objExcel);
 //设置属性 (这段代码无关紧要,其中的内容可以替换为你需要的)
$objExcel->getProperties()->setCreator("andy");
$objExcel->getProperties()->setLastModifiedBy("andy");
$objExcel->getProperties()->setTitle("Office 2003 XLS Test Document");
$objExcel->getProperties()->setSubject("Office 2003 XLS Test Document");
$objExcel->getProperties()->setDescription("Test document for Office 2003 XLS, generated using PHP classes.");
$objExcel->getProperties()->setKeywords("office 2003 openxml php");
$objExcel->getProperties()->setCategory("Test result file");

$objExcel->setActiveSheetIndex(0);


 $i=0;
 //表头
 $k1="xxx";
$k2="xxxxx";
$k3="xxxxx";
$k4="xxxxx";
 $k5="xxxxx";

        $objExcel->getActiveSheet()->setCellValue('a1', "$k1");
        $objExcel->getActiveSheet()->setCellValue('b1', "$k2");
        $objExcel->getActiveSheet()->setCellValue('c1', "$k3");
        $objExcel->getActiveSheet()->setCellValue('d1', "$k4");
        $objExcel->getActiveSheet()->setCellValue('e1', "$k5");
        /** @var Tips  $v */
        foreach($data as $v)
        {
        
            $u1 = $i+2;
            /*----------写入内容-------------*/
            $objExcel->getActiveSheet()->setCellValue('a'.$u1, $v->xxx);
            $objExcel->getActiveSheet()->setCellValue('b'.$u1, $v->xxx);
            $objExcel->getActiveSheet()->setCellValue('c'.$u1, $v->xxx);
            $objExcel->getActiveSheet()->setCellValue('d'.$u1, $v->xxx);
            $objExcel->getActiveSheet()->setCellValue('e'.$u1, $v->xxx);
            $i++;
        }

        // 高置列的宽度
        $objExcel->getActiveSheet()->getColumnDimension('A')->setWidth(10);
        $objExcel->getActiveSheet()->getColumnDimension('B')->setWidth(10);
        $objExcel->getActiveSheet()->getColumnDimension('C')->setWidth(70);
        $objExcel->getActiveSheet()->getColumnDimension('D')->setWidth(15);
        $objExcel->getActiveSheet()->getColumnDimension('E')->setWidth(15);

        $objExcel->getActiveSheet()->getHeaderFooter()->setOddHeader('&L&BPersonal cash register&RPrinted on &D');
        $objExcel->getActiveSheet()->getHeaderFooter()->setOddFooter('&L&B' . $objExcel->getProperties()->getTitle() . '&RPage &P of &N');

        // 设置页方向和规模
        $objExcel->getActiveSheet()->getPageSetup()->setOrientation(\PHPExcel_Worksheet_PageSetup::ORIENTATION_PORTRAIT);
        $objExcel->getActiveSheet()->getPageSetup()->setPaperSize(\PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4);
        $objExcel->setActiveSheetIndex(0);
        $timestamp = time();
        $ex = '2007';

        if($ex == '2007')

{

     //导出excel2007文档

            $outputFileName = $timestamp."links_out.xls";
            $objWriter->save($outputFileName);
            exit;

}

else

{        //导出excel2003文

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

            header('Content-Disposition: attachment;filename="links_out'.$timestamp.'.xls"');
            header('Cache-Control: max-age=0');
            $objWriter = \PHPExcel_IOFactory::createWriter($objExcel, 'Excel5');
            $objWriter->save('php://output');
            exit;
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值