PHPExcel将列结构化为行

PHPExcel将列结构化为行,php,excel,phpexcel,Php,Excel,Phpexcel,我有一个作业列表,可以包含许多访问 在PHPExcel中,我目前正在打印作业,并将访问作为如下列: 所以我根据一份工作的访问量计算出我需要多少专栏 但是,出于筛选目的,我希望这些访问列显示为行,如下所示: 在这里,我指定了访问编号,以便每次访问都位于自己的行中 这是我的代码(当前打印如第一张图片所示): //创建工作表 $worksheet_two=$objPHPExcel->createSheet(1)//创建时设置索引 $worksheet_two->setTitle(“被动作业未完成”);

我有一个
作业列表
,可以包含许多
访问

在PHPExcel中,我目前正在打印作业,并将访问作为如下列:

所以我根据一份工作的访问量计算出我需要多少专栏

但是,出于筛选目的,我希望这些访问列显示为行,如下所示:

在这里,我指定了访问编号,以便每次访问都位于自己的行中

这是我的代码(当前打印如第一张图片所示):

//创建工作表
$worksheet_two=$objPHPExcel->createSheet(1)//创建时设置索引
$worksheet_two->setTitle(“被动作业未完成”);
$worksheet_two->getStyle('A1:AL1')->getFont()->setBold(true);
//根据访问量计算出所需的访问列数量
$supplierCols=0;
foreach($worksheet\u two\u job作为$worksheet\u two\u job){
$suppliers=count(数组_unique(Hash::extract($worksheet_two_job['Visit'],'{n}.Supplier.name'));
$supplierCols=最大值($suppliers,$supplierCols);
}
//建立标题
$headers=array();
$headers[]=_uuu('Client');
$headers[]=_uuu('Job Ref');
$headers[]=_uuu('订单号');
对于($i=0;$i<$supplierCols;$i++){
$key=$i+1;
$headers[]=_uu('访问%s分包商',$key);
$headers[]=_uu('访问%s开始日期',$key);
$headers[]=_uu('访问%s开始时间',$key);
$headers[]=_uu('访问%s结束日期',$key);
$headers[]=_uu('访问%s结束时间',$key);
}
//在工作表中插入标题
$worksheet\u two->fromArray($headers);
//成行
$rowID=2;
foreach($worksheet\u two\u job作为$worksheet\u two\u job){
$columnID='A';
$row=array();
$row[]=$WORKEY_WOB_作业['Client']['name'];
$row[]=$worksheet\u two\u job['job']['job\u ref'];
$row[]=$worksheet\u two\u job['job']['order\u number'];
对于($i=0;$i<$supplierCols;$i++){
$row[]=!空($worksheet\u two\u job['Visit'][$i])?$worksheet\u two\u job['Visit'][$i]['Supplier']['name']:空;
$row[]=!空($WORKSETER\U WORK\U job['Visit'][$i])?$WORKSETER\U WORK\U job['Visit'][$i]['start\U date']:空;
$row[]=!空($WORKSETER\U WORK\U job['Visit'][$i])?$WORKSETER\U WORK\U job['Visit'][$i]['start\U date']:空;
$row[]=!空($WORKSETER\U WORK\U job['Visit'][$i])?$WORKSETER\U WORK\U job['Visit'][$i]['end\U date']:null;
$row[]=!空($WORKSETER\U WORK\U job['Visit'][$i])?$WORKSETER\U WORK\U job['Visit'][$i]['end\U date']):空;
}
}
//插入行
$worksheet\u two->fromArray($row,NULL,$columnID.$key);
我怎样才能实现第二张图片?有什么想法吗

       // create the worksheet
        $worksheet_two = $objPHPExcel->createSheet(1); //Setting index when creating
        $worksheet_two->setTitle("Reactive Jobs Not Complete");
        $worksheet_two->getStyle('A1:AL1')->getFont()->setBold(true);

        // work out the amount of visit columns needed based on how many visits there are
        $supplierCols = 0;
        foreach ($worksheet_two_jobs as $worksheet_two_job) {
            $suppliers = count(array_unique(Hash::extract($worksheet_two_job['Visit'], '{n}.Supplier.name')));
            $supplierCols = max($suppliers, $supplierCols);
        }


        // build up headers
        $headers = array();
        $headers[] = __('Client');
        $headers[] = __('Job Ref');
        $headers[] = __('Order Number');

        for ($i = 0; $i < $supplierCols; $i++) {
                $key = $i + 1;
                $headers[] = __('Visit %s Subcontractor', $key);
                $headers[] = __('Visit %s Start Date', $key);
                $headers[] = __('Visit %s Start Time', $key);
                $headers[] = __('Visit %s End Date', $key);
                $headers[] = __('Visit %s End Time', $key);
            }

        // insert headers into worksheet
        $worksheet_two->fromArray($headers);


        // build up rows
        $rowID = 2;
        foreach ($worksheet_two_jobs as $worksheet_two_job) {
            $columnID = 'A';
            $row = array();
            $row[] = $worksheet_two_job['Client']['name'];
            $row[] = $worksheet_two_job['Job']['job_ref'];
            $row[] = $worksheet_two_job['Job']['order_number'];

            for ($i = 0; $i < $supplierCols; $i++) {
                    $row[] = !empty($worksheet_two_job['Visit'][$i]) ? $worksheet_two_job['Visit'][$i]['Supplier']['name'] : null;

                    $row[] = !empty($worksheet_two_job['Visit'][$i]) ? $worksheet_two_job['Visit'][$i]['start_date'] : null;
                    $row[] = !empty($worksheet_two_job['Visit'][$i]) ?  $worksheet_two_job['Visit'][$i]['start_date'] : null;
                    $row[] = !empty($worksheet_two_job['Visit'][$i]) ? $worksheet_two_job['Visit'][$i]['end_date'] : null;
                    $row[] = !empty($worksheet_two_job['Visit'][$i]) ?  $worksheet_two_job['Visit'][$i]['end_date']) : null;
            }
}

    // insert rows
    $worksheet_two->fromArray($row, NULL, $columnID. $key);