/** * @param array $reportMenu * @return mixed * @throws \PHPExcel_Exception * @throws \PHPExcel_Reader_Exception * */ public static function renderReportMenu($reportMenu = array()) { $arrayOderId = Utility::groupOrderId(); //set val for Excel $row = $beginRow = $countRowMerge = 2; $objPHPExcel = new \PHPExcel(); if (count($reportMenu) < 1 || !isset($reportMenu)) { return ''; } //get header item $header = array(); $i = 0; foreach ($reportMenu[0] as $k => $item) { $header[self::getNameFromNumber($i)] = $k; $i++; } //end get header item //render header foreach ($header as $k => $val) { $objPHPExcel->setActiveSheetIndex(0)->setCellValue($k . '1', $val); $objPHPExcel->getActiveSheet()->getColumnDimension($k)->setWidth(25); } //end render header $rowId = 2; $i = 0; //group by orderId excel foreach ($arrayOderId as $OrderId => $orderIdInfo) { $count = $orderIdInfo['count']; //render item in header foreach ($header as $kHeader => $valHeader) { if (self::checkMerger($valHeader) == true) { $concat = $kHeader . $rowId . ":" . $kHeader . ($rowId + $count - 1); $objPHPExcel->setActiveSheetIndex(0)->mergeCells($concat); //$objPHPExcel->setActiveSheetIndex(0)->setCellValue($kHeader.$rowId,$concat); $cellText = $orderIdInfo[$valHeader]; if ($valHeader == 'order_create_date') { $cellText = date('d-m-Y', $orderIdInfo[$valHeader]); } $objPHPExcel->setActiveSheetIndex(0)->setCellValue($kHeader . $rowId, $cellText); } } //end render item header $rowId = $rowId + $count; $i++; } //end group by orderId excel foreach ($reportMenu as $orderIdInfo) { foreach ($header as $kHeader => $valHeader) { if (self::checkMerger($valHeader) != true) { $cellText = $orderIdInfo[$valHeader]; $objPHPExcel->setActiveSheetIndex(0)->setCellValue($kHeader . $row, $cellText); } } $row++; } $strLink = self::createExcelLink(time()); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save($strLink); return str_replace('public/', '', $strLink); }
/** * @param array $reportMenu * @return mixed * @throws \PHPExcel_Exception * @throws \PHPExcel_Reader_Exception * */ public static function renderReportMenu($reportMenu = array()) { $arrayOderId = Utility::groupOrderId(); //set val for Excel $row = $beginRow = $countRowMerge = 2; $objPHPExcel = new \PHPExcel(); if (count($reportMenu) < 1 || !isset($reportMenu)) { return ''; } //get header item $header = array(); $i = 0; foreach ($reportMenu[0] as $k => $item) { $header[self::getNameFromNumber($i)] = $k; $i++; } //end get header item //render header foreach ($header as $k => $val) { $objPHPExcel->setActiveSheetIndex(0)->setCellValue($k . '1', $val); $objPHPExcel->getActiveSheet()->getColumnDimension($k)->setWidth(25); } //end render header $rowId = 2; $i = 0; //group by orderId excel foreach ($arrayOderId as $OrderId => $orderIdInfo) { $count = $orderIdInfo['count']; //render item in header foreach ($header as $kHeader => $valHeader) { if (self::checkMerger($valHeader) == true) { $concat = $kHeader . $rowId . ":" . $kHeader . ($rowId + $count - 1); $objPHPExcel->setActiveSheetIndex(0)->mergeCells($concat); //$objPHPExcel->setActiveSheetIndex(0)->setCellValue($kHeader.$rowId,$concat); $cellText = $orderIdInfo[$valHeader]; if ($valHeader == 'order_create_date') { $cellText = date('d-m-Y', $orderIdInfo[$valHeader]); } $objPHPExcel->setActiveSheetIndex(0)->setCellValue($kHeader . $rowId, $cellText); } } //end render item header $rowId = $rowId + $count; $i++; } //end group by orderId excel foreach ($reportMenu as $orderIdInfo) { foreach ($header as $kHeader => $valHeader) { if (self::checkMerger($valHeader) != true) { $cellText = $orderIdInfo[$valHeader]; $objPHPExcel->setActiveSheetIndex(0)->setCellValue($kHeader . $row, $cellText); } } $row++; } // $rowId = 2; // $i=0; // foreach($arrayOderId as $k=>$val){ // // // $count = self::countOrderId($reportMenu,$k); // // // $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A'.$rowId, $reportMenu[$i]['orderID']); // $objPHPExcel->setActiveSheetIndex(0)->setCellValue('C'.$rowId, $reportMenu[$i]['order_total_cost']); // $objPHPExcel->setActiveSheetIndex(0)->setCellValue('D'.$rowId, $reportMenu[$i]['order_total_real_cost']); // $objPHPExcel->setActiveSheetIndex(0)->setCellValue('E'.$rowId, $reportMenu[$i]['order_create_date']); // $objPHPExcel->setActiveSheetIndex(0)->setCellValue('F'.$rowId, $reportMenu[$i]['order_coupon_id']); // $objPHPExcel->setActiveSheetIndex(0)->setCellValue('G'.$rowId, $reportMenu[$i]['order_surtax_id']); // // $concat = 'A'.$rowId.":".'A'.($rowId+$val-1); // $objPHPExcel->setActiveSheetIndex(0)->mergeCells($concat); // $concat = 'B'.$rowId.":".'B'.($rowId+$val-1); // $objPHPExcel->setActiveSheetIndex(0)->mergeCells($concat); // $concat = 'C'.$rowId.":".'C'.($rowId+$val-1); // $objPHPExcel->setActiveSheetIndex(0)->mergeCells($concat); // $concat = 'D'.$rowId.":".'D'.($rowId+$val-1); // $objPHPExcel->setActiveSheetIndex(0)->mergeCells($concat); // $concat = 'E'.$rowId.":".'E'.($rowId+$val-1); // $objPHPExcel->setActiveSheetIndex(0)->mergeCells($concat); // $concat = 'F'.$rowId.":".'F'.($rowId+$val-1); // $objPHPExcel->setActiveSheetIndex(0)->mergeCells($concat); // $concat = 'G'.$rowId.":".'G'.($rowId+$val-1); // $objPHPExcel->setActiveSheetIndex(0)->mergeCells($concat); // $rowId = $rowId + $val; // // $i++; // } //render data $mergeBefore = 0; // foreach($reportMenu as $dataRow){ // $count = self::countOrderId($reportMenu,$dataRow['orderID']); //// foreach($header as $k=>$val){ //// //merge cell //// if($val == 'orderID' || $val == 'order_total_cost' || $val == 'order_total_real_cost' || $val == 'order_create_date' || $val=='order_coupon_id' || $val== 'order_surtax_id'){ //// //begin merge ////// if($count > 1){ ////// $concat = $k.$row.":".$k.($row+$count-1); ////// if($beforeMegre == 0){ ////// $objPHPExcel->setActiveSheetIndex(0)->mergeCells($concat); ////// } ////// $beforeMegre = 1; ////// }else{ ////// $beforeMegre = 0; ////// } //// //end merge //// } //// //end merge cell //// $objPHPExcel->setActiveSheetIndex(0)->setCellValue($k.$row, $dataRow[$val]); //// } // if($count > 1){ // if($mergeBefore == 0){ // $concat = 'A'.$row.":".'A'.($row+$count-1); // $objPHPExcel->setActiveSheetIndex(0)->mergeCells($concat); // $mergeBefore = 1; // }else{ // $mergeBefore = 0; // } // } // $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A'.$row, $dataRow['orderID']); // $objPHPExcel->setActiveSheetIndex(0)->setCellValue('B'.$row, $dataRow['order_total_cost']); // $objPHPExcel->setActiveSheetIndex(0)->setCellValue('C'.$row, $dataRow['order_total_real_cost']); //// $objPHPExcel->setActiveSheetIndex(0)->setCellValue('D'.$row, $dataRow['order_create_date']); //// $objPHPExcel->setActiveSheetIndex(0)->setCellValue('E'.$row, $dataRow['order_coupon_id']); //// $objPHPExcel->setActiveSheetIndex(0)->setCellValue('F'.$row, $dataRow['order_surtax_id']); //// $objPHPExcel->setActiveSheetIndex(0)->setCellValue('G'.$row, $dataRow['order_detail_id']); //// $objPHPExcel->setActiveSheetIndex(0)->setCellValue('H'.$row, $dataRow['userName']); //// $objPHPExcel->setActiveSheetIndex(0)->setCellValue('I'.$row, $dataRow['detail_menu_id']); //// $objPHPExcel->setActiveSheetIndex(0)->setCellValue('J'.$row, $dataRow['detail_cost_type']); //// $objPHPExcel->setActiveSheetIndex(0)->setCellValue('K'.$row, $dataRow['detail_cost']); //// $objPHPExcel->setActiveSheetIndex(0)->setCellValue('L'.$row, $dataRow['detail_real_cost']); //// $objPHPExcel->setActiveSheetIndex(0)->setCellValue('M'.$row, $dataRow['detail_quantity']); //// $objPHPExcel->setActiveSheetIndex(0)->setCellValue('N'.$row, $dataRow['detail_discout']); //// $objPHPExcel->setActiveSheetIndex(0)->setCellValue('O'.$row, $dataRow['menu_name']); // $row ++; // } //end render data $strLink = self::createExcelLink(time()); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save($strLink); return str_replace('public/', '', $strLink); }