PHPExcel 导出图片

            $str=$_GET['str'];//勾选
            $str2=$_GET['str2'];//表头

            $td_field=explode(',', $str2);//表头
            $field=explode(',', $str);//勾选
            $objPHPExcel=new \PHPExcel();
            //var_dump($objPHPExcel);die;
            $objPHPExcel->getProperties()->setCreator('http://www.jb51.NET')
                ->setLastModifiedBy('http://www.jb51.Net')
                ->setTitle('Office 2007 XLSX Document')
                ->setSubject('Office 2007 XLSX Document')
                ->setDescription('Document for Office 2007 XLSX, generated using PHP classes.')
                ->setKeywords('office 2007 openxml php')
                ->setCategory('Result file');
            $objPHPExcel->setActiveSheetIndex(0)
                ->setCellValue('A1',$td_field[0])
                ->setCellValue('B1',$td_field[1])
                ->setCellValue('C1',$td_field[2])
                ->setCellValue('D1',$td_field[3])
                ->setCellValue('E1',$td_field[4])
                ->setCellValue('F1',$td_field[5])
                ->setCellValue('G1',$td_field[6])
                ->setCellValue('H1',$td_field[7])
                ->setCellValue('I1',$td_field[8])
                ->setCellValue('J1',$td_field[9]);

            $i=2;

            foreach($data as $k=>$v){
                $objActSheet = $objPHPExcel->getActiveSheet();
                // 图片生成
                $objDrawing[$k] = new \PHPExcel_Worksheet_Drawing();
                $objDrawing[$k]->setPath($v['img']);
                // 设置宽度高度
                $objDrawing[$k]->setHeight(30);//照片高度
                $objDrawing[$k]->setWidth(30); //照片宽度
                /*设置图片要插入的单元格 从第二行开始*/
                $objDrawing[$k]->setCoordinates('I'.$i);
                // 写入图片在指定格中的X坐标值
                $objDrawing[$k]->setOffsetX ( 20 );
                // 写入图片在指定格中的Y坐标值
                $objDrawing[$k]->setOffsetY ( 20 );

                $objDrawing[$k]->setWorksheet($objPHPExcel->getActiveSheet());

                $objPHPExcel->setActiveSheetIndex(0)
                    ->setCellValue('A'.$i,$v["$field[0]"])
                    ->setCellValue('B'.$i,$v["$field[1]"])
                    ->setCellValue('C'.$i,$v["$field[2]"])
                    ->setCellValue('D'.$i,$v["$field[3]"])
                    ->setCellValue('E'.$i,$v["$field[4]"])
                    ->setCellValue('F'.$i,$v["$field[5]"])
                    ->setCellValue('G'.$i,$v["$field[6]"])
                    ->setCellValue('H'.$i,$v["$field[7]"]);

                $objPHPExcel->setActiveSheetIndex(0)->getStyle('A' . $i)->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
                $objPHPExcel->setActiveSheetIndex(0)->getStyle('B' . $i)->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
                $objPHPExcel->setActiveSheetIndex(0)->getStyle('C' . $i)->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
                $objPHPExcel->setActiveSheetIndex(0)->getStyle('D' . $i)->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
                $objPHPExcel->setActiveSheetIndex(0)->getStyle('E' . $i)->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
                $objPHPExcel->setActiveSheetIndex(0)->getStyle('F' . $i)->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
                $objPHPExcel->setActiveSheetIndex(0)->getStyle('G' . $i)->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
                $objPHPExcel->setActiveSheetIndex(0)->getStyle('H' . $i)->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);

                // 水平居中(位置很重要,建议在最初始位置)
                $objPHPExcel->setActiveSheetIndex(0)->getStyle('A1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
                $objPHPExcel->setActiveSheetIndex(0)->getStyle('B1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
                $objPHPExcel->setActiveSheetIndex(0)->getStyle('C1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
                $objPHPExcel->setActiveSheetIndex(0)->getStyle('D1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
                $objPHPExcel->setActiveSheetIndex(0)->getStyle('E1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
                $objPHPExcel->setActiveSheetIndex(0)->getStyle('F1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
                $objPHPExcel->setActiveSheetIndex(0)->getStyle('G1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
                $objPHPExcel->setActiveSheetIndex(0)->getStyle('H1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
                $objPHPExcel->setActiveSheetIndex(0)->getStyle('I1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);


                // 表格高度
                $objActSheet->getRowDimension($k+2)->setRowHeight(80);
                $i++;
            }

            $objPHPExcel->getActiveSheet()->setTitle('通讯录');
            $objPHPExcel->setActiveSheetIndex(0);
            //$filename=urlencode('数据表').'_'.date('Y-m-dHis');
            $filename='通讯录'.'_'.date('Y-m-dHis');

            /*
            *生成xlsx文件
            header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
            header('Content-Disposition: attachment;filename="'.$filename.'.xlsx"');
            header('Cache-Control: max-age=0');
            $objWriter=PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel2007');
            */

            //生成xls文件
            header('Content-Type: application/vnd.ms-excel');
            header('Content-Disposition: attachment;filename="'.$filename.'.xls"');
            header('Cache-Control: max-age=0');
            $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
            $objWriter->save('php://output');
            exit;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值