使用PHPExcel将数据从SQL数据库提取到Excel报告中

我需要一个PHP代码解决scheme来将选定的SQL查询数据转换为excel工作簿格式。 我已经实现了生成Excel工作簿文件的代码。 但结果不应该与我需要的Excel格式马赫。

Excel报表格式,我需要
excel报告

我成功的SQL查询结果

SQL结果

我的PHP编码

$get_mode = "SELECT sh_sso.showrooms.showroom_id, sh_sso.showrooms.showroom_name, Count(abans_crm.customers.purchase_type) AS mode_count, abans_crm.customers.purchase_date, abans_crm.pay_mode.pay_mode FROM sh_sso.showrooms INNER JOIN abans_crm.customers ON sh_sso.showrooms.showroom_id = abans_crm.customers.location_id INNER JOIN abans_crm.pay_mode ON abans_crm.customers.purchase_type = abans_crm.pay_mode.mode_id WHERE DATE(abans_crm.customers.purchase_date) >= '$fromDate' AND DATE(abans_crm.customers.purchase_date) <= '$toDate' GROUP BY abans_crm.pay_mode.pay_mode, sh_sso.showrooms.showroom_name"; $result = mysql_query($get_mode) or die(mysql_error());; $row = 6; while($row_mode = mysql_fetch_array($result)){ $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A'.$row, $row_mode['showroom_name']); if($row_mode['pay_mode'] == 'Cash'){ if($row_mode['mode_count'] > 1){ $objPHPExcel->setActiveSheetIndex(0)->setCellValue('B'.$row,$row_mode['mode_count']); } elseif($row_mode['mode_count'] == 1){ $objPHPExcel->setActiveSheetIndex(0)->setCellValue('B'.$row,'1'); } else { $objPHPExcel->setActiveSheetIndex(0)->setCellValue('B'.$row,'0'); } } if($row_mode['pay_mode'] == 'Credit Card'){ if($row_mode['mode_count'] > 1){ $objPHPExcel->setActiveSheetIndex(0)->setCellValue('C'.$row,$row_mode['mode_count']); } elseif($row_mode['mode_count'] == 1){ $objPHPExcel->setActiveSheetIndex(0)->setCellValue('C'.$row,'1'); } else { $objPHPExcel->setActiveSheetIndex(0)->setCellValue('C'.$row,'0'); } } if($row_mode['pay_mode'] == 'Hire Purchase'){ if($row_mode['mode_count'] > 1){ $objPHPExcel->setActiveSheetIndex(0)->setCellValue('D'.$row,$row_mode['mode_count']); } elseif($row_mode['mode_count'] == 1){ $objPHPExcel->setActiveSheetIndex(0)->setCellValue('D'.$row,'1'); } else { $objPHPExcel->setActiveSheetIndex(0)->setCellValue('D'.$row,'0'); } } if($row_mode['pay_mode'] == 'Lease'){ if($row_mode['mode_count'] > 1){ $objPHPExcel->setActiveSheetIndex(0)->setCellValue('E'.$row,$row_mode['mode_count']); } elseif($row_mode['mode_count'] == 1){ $objPHPExcel->setActiveSheetIndex(0)->setCellValue('E'.$row,'1'); } else { $objPHPExcel->setActiveSheetIndex(0)->setCellValue('E'.$row,'0'); } } ++$row; } //} //genarate report data header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="test-report 2016-04-3.xls"'); header('Cache-Control: max-age=0'); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('php://output'); 

作为一个例子突出显示的logging数据应该成为单行和它的总和。 在这种情况下,TOTAL应该是37