phpexcel导出excel,怎么给内容加超链接,求大神帮帮我

使用phpexcel导出excel时,怎么让导出的内容带有超链接(想让user_name带一个超链接),该如何实现,静态方法export要怎么改 请大神帮忙 代码如下:

// 判断二维数组中是否有数据 如果有将相关数据导出成excel
        if ($errorData !== []) {
            $xlsData = Excel::export([
                'file_name' => '推广日志 - ' . date('YmdHis'),//文件名称(选填 - 默认为YmdHis格式)
                'data' => $errorData,//二维数组
                'columns' => [
                    'id'=>'用户编号',
                    'user_name'=>'用户名',
                    'errors'=>'错误信息',
                ]
            ]);
            return ['file_name'=>'推广日志 - ' . date('YmdHis'),'download_base64' => "data:application/vnd.ms-excel;base64," . base64_encode($xlsData)];
        }else{
            return ['msg'=>'数据无异常!'];
        }
/*  导出 */
    public static function export($params) {

        $excel = new \PHPExcel();
        $excel->setActiveSheetIndex(0);
        $excel->getActiveSheet()->setTitle('Simple');

        //行配置信息
        $columns = $params['columns'];
        //mysql数据
        $data = $params['data'];
        //文件名称
        $fileName = isset($params['file_name']) ? $params['file_name'] : date('YmdHis');

        //横向序号
        $letter = ['A', 'B', 'C', 'D', 'E', 'F', 'G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'];
        $letter = array_slice($letter,0,count($columns));

        foreach($data as $dataKey => $dataVal){
            $row = $dataKey + 2;//行 第二行开始
            $letterKey = 0;
            foreach($columns as $columnKey => $columnVal){
                //设置表头
                if($dataKey == 0){
                    $label = gettype($columnVal) == 'string' ? $columnVal : $columnVal['label'];
//                    echo $letter[$letterKey].'1/'.$label.'<br/>';
                    //单元格宽度
                    $width = isset($columnVal['width']) ? $columnVal['width'] : null;
                    $excel->getActiveSheet()->getDefaultColumnDimension($letter[$letterKey])->setWidth($width);
                    $excel->getActiveSheet()->setCellValue("$letter[$letterKey]1", "$label");
                }
                if (gettype($columnVal) == 'string') {
                    $field = $columnKey;//字段名称
                    $value = $dataVal[$field];
                } else {
                    $field = $columnVal['field'];
                    if (isset($columnVal['value'])) {
                        $value = $columnVal['value'];
                        if (gettype($columnVal['value']) == 'object') {
                            $value = $value($dataVal[$field], $dataVal, $dataKey);
                        }
                    } else {
                        $value = $dataVal[$field];
                    }
                }
                if (isset($columnVal['select'])) {
                    $select = $columnVal['select'];
                    $value = isset($select[$value]) ? $select[$value] : '';
                }
                if (isset($columnVal['format']) && $columnVal['format'] === 'date') {
                    $value = !empty($value) ? date('Y-m-d', $value) : '';
                }
//                echo $letter[$letterKey].$row.'/'.$value.'----------';
                //设置表数据
                if(isset($columnVal['format']) && $columnVal['format'] == 'text'){
                    $excel->getActiveSheet()->setCellValue("$letter[$letterKey]$row" , "$value" . "\t", \PHPExcel_Cell_DataType::TYPE_STRING);
                }else{
                    $excel->getActiveSheet()->setCellValue("$letter[$letterKey]$row", "$value");
                }
                $letterKey +=1;
            }
//            echo '<br/>';


        }

        $write = new \PHPExcel_Writer_Excel5($excel);
        if($_SERVER['REQUEST_METHOD'] == 'POST'){
            ob_start();
            $write->save('php://output');
            $xlsData = ob_get_contents();
            ob_end_clean();
            return $xlsData;
        }else{
            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-execl");
            header("Content-Type:application/octet-stream");
            header("Content-Type:application/download");
            header('Content-Disposition:attachment;filename="'.$fileName.'.xls"');
            header("Content-Transfer-Encoding:binary");
            echo $write->save('php://output');exit;
        }


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值