使用YII后端做PHPExcel导出功能

第一步:前端代码:<a style="color:white;display:;margin-bottom: 20px;margin-left: 30px;width: 200px" class="btn btn-primary " href="<?= $urlManager->createUrl(['mch/user/export-vip-card', 'id'=&g...
摘要由CSDN通过智能技术生成

第一步:

前端代码:(注意事项:前端请使用a标签导出,这里的坑是:不能使用ajax去做请求,否则会出现莫名其妙的错误)

<a  style="color:white;display:;margin-bottom: 20px;margin-left: 30px;width: 200px" class="btn btn-primary "
                href="<?= $urlManager->createUrl(['mch/user/export-vip-card', 'id'=>$card_id]) ?>">&nbsp;导出兑换码
</a>

第二步:
后端代码:(Yii后台,注意事项:PHPExcel这个类库文件放在vendor目录下即可)

use PHPExcel;
use PHPExcel_IOFactory;
use PHPExcel_Style_Alignment;
 /**
     * 导出功能
     * @param $id
     * @throws \PHPExcel_Exception
     * @throws \PHPExcel_Reader_Exception
     * @throws \PHPExcel_Writer_Exception
     */
    public function actionExportVipCard($id){
        $data =  UserCardvipList::find()->where(['redeem_code_id'=>$id])->asArray()->all();
        $fields=array('序号','兑换码','绑定人','绑定时间','使用状态','所属分类','使用时长');
        $objPHPExcel = new PHPExcel();
        $objPHPExcel->setActiveSheetIndex(0);
        $cols = array('A', 'B', 'C', 'D','E','F','G','H','I','J','K','L');
        $row = 1;
        foreach($fields as $k=>$v){
            $objPHPExcel->getActiveSheet()->setCellValue($cols[$k].$row,$fields[$k]);
            $objPHPExcel->getActiveSheet()->getStyle($cols[$k].$row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
            $objPHPExcel->getActiveSheet()->getStyle($cols[$k].$row)->getFont()->setBold(true);//加粗
            $objPHPExcel->getActiveSheet()->getColumnDimension($cols[$k])->setWidth(30);
        }

        foreach($data as $k=>$val) {
            $row = $row + 1;
            $key = 0;
            $objPHPExcel->getActiveSheet()->setCellValue(A.$row,$k+1);
            $objPHPExcel->getActiveSheet()->getStyle(A.$row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
            $key = $key + 1;
            $objPHPExcel->getActiveSheet()->setCellValue(B.$row,$val['redeem_code']);
            $objPHPExcel->getActiveSheet()->getStyle(B.$row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
            $key = $key + 1;
            $objPHPExcel->getActiveSheet()->setCellValue(C.$row, $val['username']);
            $objPHPExcel->getActiveSheet()->getStyle(C.$row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
            $key = $key + 1;
            $objPHPExcel->getActiveSheet()->setCellValue(D.$row, $val['bindingtime']);
            $objPHPExcel->getActiveSheet()->getStyle(D.$row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
            $key = $key + 1;
            $objPHPExcel->getActiveSheet()->setCellValue(E.$row, $val['status']);
            $objPHPExcel->getActiveSheet()->getStyle(E.$row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
            $key = $key + 1;
            $objPHPExcel->getActiveSheet()->setCellValue(F.$row, $val['redeem_code_id']);
            $objPHPExcel->getActiveSheet()->getStyle(F.$row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
            $key = $key + 1;
            $objPHPExcel->getActiveSheet()->setCellValue(G.$row, $val['usetime']);
            $objPHPExcel->getActiveSheet()->getStyle(G.$row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        }

        $excel_date = date('Y-m-d-', time());
        $objPHPExcel->getActiveSheet()->setTitle($excel_date.'兑换码');
        header("Pragma: public");
        header("Expires: 0");
        header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
        header("Content-Type:application/force-download");
        header('Content-Type:application/vnd.ms-excel');
        header("Content-Type:application/octet-stream");
        header("Content-Type:application/download");
        header('Content-Disposition:attachment;filename="'.$excel_date.'兑换码.xls"');
        header("Content-Transfer-Encoding:binary");
        $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
        $objWriter->save('php://output');
        exit;
    }


希望各位小伙伴能迅速玩转PHP的导出。如果觉得以上代码有用,请记得点赞哦!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jason Ho

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值