当前位置: 首页 > news >正文

贤邦网站建设app开发网站建设需要上传数据库吗

贤邦网站建设app开发,网站建设需要上传数据库吗,东莞网页制作价格,深圳宝安上市公司网站建设报价目录 一:背景 二:excel表头数据实现 三:excel渲染数据实现: 四:最终效果如下: 一:背景 最近需要统计一些数据,导出到excel,主要是一些区域的人员销售统计数据,涉及到复杂的表头和…

目录

一:背景

二:excel表头数据实现

三:excel渲染数据实现:

四:最终效果如下:


一:背景

最近需要统计一些数据,导出到excel,主要是一些区域的人员销售统计数据,涉及到复杂的表头和数据合并,我们使用PhpSpreadsheet这个excel操作库很容易就实现了,记录一下实现过程。

二:excel表头数据实现

表头有两行数据,前几列是两行合并,后几列是按照两行显示具体如下:

首先我们把表头展示实现:

     
          $spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet;
           $sheet = $spreadsheet->getActiveSheet();
            
            $header =   [
         
            ['大区','省','销售员','一月','','二月','','三月',''],
            ['','','','推广数量','销售额','推广数量','销售额','推广数量','销售额',])
        ];
        
      
        $row = 1;
        foreach ($header as $value) {
            $col = 1;
            foreach ($value as $v) {
                $sheet->setCellValueByColumnAndRow($col, $row, $v);
                $col += 1;
            }
            $row += 1;
        }

合并单元格:

       $cellValue = $sheet->getCell('A2')->getValue();
        $sheet->mergeCells('A2:A3');
        $sheet->setCellValue('A2', $cellValue);

        $cellValue = $sheet->getCell('B2')->getValue();
        $sheet->mergeCells('B2:B3');
        $sheet->setCellValue('B2', $cellValue);

        $cellValue = $sheet->getCell('C2')->getValue();
        $sheet->mergeCells('C2:C3');
        $sheet->setCellValue('C2', $cellValue);

         $sheet->mergeCells('E2:F2');
         $sheet->setCellValue('E2', '一月');
         $sheet->mergeCells('G2:H2');
         $sheet->setCellValue('G2', '二月');

          $sheet->mergeCells('I2:J2');
          $sheet->setCellValue('I2', '三月');

设置样式:

 $styleArray = [
            'borders' => [
                'outline' => [
                    'borderStyle' => Border::BORDER_THICK, // 边框样式
                    'color' => ['argb' => 'red'], // 边框颜色
                ],
                'bottom' => [
                    'borderStyle' => Border::BORDER_THIN, // 下边界线:细线
                    'color' => ['argb' => 'red'], // 边框颜色
                ],
            ],
            'alignment' => [
                'horizontal' => Alignment::HORIZONTAL_CENTER,
                'vertical' => Alignment::VERTICAL_CENTER,
            ],
            'fill' => [
                'fillType' => Fill::FILL_SOLID,
                'startColor' => [
                    'rgb' => 'ff9900'
                ]
            ],
            'font' => [
                'bold' => true,
                'color' => [
                    'rgb' => '000000'
                ]
            ],
        ];

$sheet->getStyle('A2:AB2')->applyFromArray($styleArray);

三:excel渲染数据实现:

实现逻辑是,获取每个省的销售员数据,去循环渲染,如果是同一个省,省列的单元格合并,如果是同一个区,大区列的单元格合并

     //根据销售员销售数据
            $row = $areaStart =  $provinceStart = 4;
            $col = 3;
            $monthCol = [7,9,11,13,15,17,19,21,23,25,27,29];//12个月的销售起始列
            foreach ($areaDeptArr as $areaName => $areaValue) {
                foreach ($areaValue as $provinceName => $value) {
                    foreach ($value as $v) {
                        $sheet->setCellValueByColumnAndRow($col, $row, $v['user_name']);
                        
                        //填充销售数据
                        foreach ($monthCol as $m => $mValue) {
                            
                            $lastCol = $mValue + 1;
                            $sheet->setCellValueByColumnAndRow($mValue, $row, 0);
                            $sheet->setCellValueByColumnAndRow($lastCol, $row, 0);
                            
                        }
                        
                        $row+= 1;
                    }
                    //设置省区名称
                    $sheet->mergeCells('B'.$provinceStart.':B'.($row-1));
                    $sheet->setCellValue('B'.$provinceStart, $provinceName);
                    $provinceStart = $row;
                }

                //设置大区名称
                $sheet->mergeCells('A'.$areaStart.':A'.($row-1));
                $sheet->setCellValue('A'.$areaStart, $areaName);
                $areaStart = $row;
            }

            $excelName = '业务员销售数据.xlsx';
            $writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
            $writer->save($excelName);

四:最终效果如下:

http://www.yayakq.cn/news/501851/

相关文章:

  • 深圳网站ui设计一款app是如何制作出来的
  • 镇平县建设局网站中小企业网站建设济南兴田德润厉害吗
  • 欢迎访问中国建设银行网站个人客户百度q3财报2022
  • 域名价格查询网站婚庆租车
  • 网站还没完成 能备案吗wordpress添加友链申请
  • 工程建设最好的网站网站建设相关费用预算推广
  • 怎样做境外网站上赚钱wordpress自定义搜索功能
  • 北京做网站公司哪家好陈铭生是什么小说
  • 网站框架模板马蹄室内设计官网
  • php网站开发实例教材ps如何做网页设计
  • 建设悦生活网站新闻发稿公司
  • php网站建设全程实例个人网站做什么类型的
  • 猫扑网站开发的游戏鹤壁哪里做网站
  • 邯郸网站建设项目做网站需要好多图片
  • 在直播网站做前端注意长沙网站建设规划
  • 网站站长seo推广手机网站用什么后台
  • 百度网站优化是什么意思网络推广网站培训班
  • 网站的总规划书做自行车车队网站的名字
  • WordPress资讯站点源码wordpress 删除后台登录logo
  • 悬赏做logo的网站中小学网站建设建议
  • 地方门户网站如何宣传php网站开发 薪资 东莞
  • 寻网站开发人员合作如何让别人浏览我做的网站
  • elision豪华级创意企业中文wordpress主题整站钓鱼网站网址大全
  • 怎么学好网站开发建设教育网站怎么样
  • 西安机场商务宾馆百度做网站医疗手机网站建设
  • 网站建设功能需求表世界排行榜前十名
  • 建筑工程发布网站装饰公司网站建设方案
  • 西安网站优化广州网站建设提供商
  • 呼和浩特做网站的百度云wordpress教程
  • 国网交流建设公司网站做企业网站电话销售话术