PHPExcel类导出excel表带图片

news/2024/7/21 6:54:57 标签: php, excel

使用PHPExcel类导出excel表格数据,表中带图片导出

/**
     *
     * 导出Excel
     */
    public function export(){//导出Excel
     
        $data = Db::name('test')->select(); // 查询出来的数据

        import('PHPExcel.PHPExcel', EXTEND_PATH);
        $objPHPExcel = new \PHPExcel();

        $objWriter = new \PHPExcel_Writer_Excel2007($objPHPExcel);
        $objActSheet = $objPHPExcel->getActiveSheet();
        // 设置水平居中,有几列数据,就设置几列
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('A')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('B')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('C')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('D')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('E')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('F')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('G')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

        // 设置第一列的标题值
        $objActSheet->setCellValue('A1', '名称');
        $objActSheet->setCellValue('B1', '二维码编号');
        $objActSheet->setCellValue('C1', '分类名');
        $objActSheet->setCellValue('D1', '内容摘要');
        $objActSheet->setCellValue('E1', '关键字');
        $objActSheet->setCellValue('F1', '二维码类型');
        $objActSheet->setCellValue('G1', '图片');

        // 设置个表格宽度
       $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(16);
       $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(15);
       $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(15);
       $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(20);
       $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(12);
       $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(12);
       $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(12);
       // 垂直居中
       $objPHPExcel->setActiveSheetIndex(0)->getStyle('A')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
       $objPHPExcel->setActiveSheetIndex(0)->getStyle('B')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
       $objPHPExcel->setActiveSheetIndex(0)->getStyle('C')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
       $objPHPExcel->setActiveSheetIndex(0)->getStyle('D')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
       $objPHPExcel->setActiveSheetIndex(0)->getStyle('E')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
       $objPHPExcel->setActiveSheetIndex(0)->getStyle('F')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
       $objPHPExcel->setActiveSheetIndex(0)->getStyle('G')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
       // 组装数据,处理图片
       $inputFileName = ROOT_PATH .'upload' .DS;
       //
       foreach($data as $k=>$v){
            $k +=2;
            $objActSheet->setCellValue('A'.$k, $v['post_title']);
            $objActSheet->setCellValue('B'.$k, $v['qr_number']);
            $objActSheet->setCellValue('C'.$k, $v['name']);
            $objActSheet->setCellValue('D'.$k, $v['post_excerpt']);
            $objActSheet->setCellValue('E'.$k, $v['page_keywords']);
            $objActSheet->setCellValue('F'.$k, $v['qr_type']);

            //获取到图片信息
            // 图片生成
            $objDrawing[$k] = new \PHPExcel_Worksheet_Drawing();
            if(isset($v['more']['thumbnail']) && !empty($v['more']['thumbnail'])){
                if(file_exists($inputFileName.$v['more']['thumbnail'])){
                    $objDrawing[$k]->setPath($inputFileName.$v['more']['thumbnail']);//这里拼接 . 是因为要在根目录下获取
                    // 设置宽度高度
                    $objDrawing[$k]->setHeight(80);//照片高度
                    $objDrawing[$k]->setWidth(80); //照片宽度
                    /*设置图片要插入的单元格*/
                    $objDrawing[$k]->setCoordinates('G'.$k);
                    // 图片偏移距离
                    $objDrawing[$k]->setOffsetX(2);
                    $objDrawing[$k]->setOffsetY(2);
                    $objDrawing[$k]->setWorksheet($objPHPExcel->getActiveSheet());

                    // 表格高度
                    $objActSheet->getRowDimension($k)->setRowHeight(80);
                }
            }else{
                $objActSheet->setCellValue('G'.$k, $v['issuing']);
            }
        }

        $fileName = '测试表.xls';
        $fileName = iconv("utf-8", "gb2312", $fileName);
        //重命名表
        // $objPHPExcel->getActiveSheet()->setTitle('test');
        //设置活动单指数到第一个表,所以Excel打开这是第一个表
        $objPHPExcel->setActiveSheetIndex(0);
        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'); //文件通过浏览器下载

    }

 


http://www.niftyadmin.cn/n/1365612.html

相关文章

熟悉XRumer常用内置语法

不说废话,直接进入主题,在使XRumer这个强大的神器之前我们有必要了解一下它的常用语法 论坛大多使用BBcode,想必大家都很熟悉了,用XRumer做论坛推广时,同样需要使用BBCode XRumer支持Spin语法 这样如果我想给我的网站做…

Spring FrameWork从入门到NB - Environment Abstraction

Environment Abstraction,环境抽象,指的是Spring通过Environment接口方便地从环境变量或配置文件中读取数据。 Spring容器的Environment接口包含两个重要概念或模块:profiles和properties。 profiles:有active或inactive两个状态…

PHP 数字前面补零 固定位数补0

可以使用php内置函数sprintf() 函数把字符串填充为新的长度 $str 2; $newStr sprintf(%05s, $str); echo $str; 输出结果为 000002;

【转】ASP.NET Button、ImageButton、LinkButton、HyperLink区别

ASP.NET Button、ImageButton、LinkButton、HyperLink区别 2010-07-29 10:07:55| 分类&#xff1a; ASP.NET|字号 订阅 这4个控件都属于WEB服务器控件&#xff0c;有很多相同的属性和事件。其区别如下所示。在*.aspx页面中插入Button控件如以下代码所示。<asp:Button runat…

THINKPHP Yansongda 微信H5支付,公众号支付

说的无益&#xff0c;看代码就行了 更多支付方式请到https://pay.yansongda.cn/docs/v2/ 1. 微信H5支付 $config [appid > wxb3fxxxxxxxxxxx, // APP APPIDapp_id > appid, // 公众号 APPIDminiapp_id > wxb3fxxxxxxxxxxx, // 小程序 APPIDmch_id > merchant,ke…

thinkcmf 页面变量截取,默认值

1.默认值 {$category.name|default分类名为空} 2.字符截取 {$post.create_time|mb_substr0,10}

关于SQL Server专用管理员连接DAC

因为要将加密的存储过程解密&#xff0c;在网上查到的方式都是那个存储过程&#xff0c;然后都碰到了【对象名 sys.sysobjvalues 无效。】都需要用DAC连接进入数据库。但是昨天下午碰到了个问题&#xff0c;连接进去后是master数据库&#xff0c;不能修改成为我想处理的数据库。…

TP使用PhpWord导出固定格式文档

引用类 use PhpOffice\PhpWord\IOFactory; use PhpOffice\PhpWord\PhpWord; use PhpOffice\PhpWord\TemplateProcessor; public function word(){$PHPWord new PhpWord();$section $PHPWord->createSection();$PHPWord->addTitleStyle(1, array(bold > true, size…