getProperties()->setCreator("E5") ->setLastModifiedBy("E5") ->setTitle("E5 - Report Sales") ->setSubject("E5 - Report Document") ->setDescription("Report Sales - description") ->setKeywords("e5, report, report sales") ->setCategory("Reports"); /*****************************************************/ /******************* EXCELL Styles *******************/ /*****************************************************/ // Set default widths and heights $objPHPExcel->getActiveSheet()->getDefaultColumnDimension()->setWidth(15); $objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(20); $headerStyle = array( 'alignment' => array( 'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER, 'vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER, ), 'font' => array( 'bold' => true, 'color' => array('rgb' => 'FFFFFF'), 'name' => 'Verdana', ), 'fill' => array( 'type' => PHPExcel_Style_Fill::FILL_SOLID, 'startcolor' => array( 'rgb' => '272822', ), ), ); $categoryStyle = array( 'alignment' => array( 'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_RIGHT, 'vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER, ), 'font' => array( 'bold' => true, 'color' => array('rgb' => 'FFFFFF'), 'name' => 'Verdana', ), 'fill' => array( 'type' => PHPExcel_Style_Fill::FILL_SOLID, 'startcolor' => array( 'rgb' => '4E5044', ), ), ); $subCategoryStyle = array( 'alignment' => array( 'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_RIGHT, 'vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER, ), 'font' => array( 'bold' => true, 'color' => array('rgb' => 'FFFFFF'), 'name' => 'Verdana', ), 'fill' => array( 'type' => PHPExcel_Style_Fill::FILL_SOLID, 'startcolor' => array( 'rgb' => '8F937D', ), ), ); $subSubCategoryStyle = array( 'alignment' => array( 'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_RIGHT, 'vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER, ), 'font' => array( 'bold' => true, 'color' => array('rgb' => 'FFFFFF'), 'name' => 'Verdana', ), 'fill' => array( 'type' => PHPExcel_Style_Fill::FILL_SOLID, 'startcolor' => array( 'rgb' => 'ACB197', ), ), ); $columnAlignRight = array( 'alignment' => array( 'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_RIGHT, 'vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER, ), ); $columnAlignLeft = array( 'alignment' => array( 'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_LEFT, 'vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER, ), ); $objPHPExcel->setActiveSheetIndex(0)->getRowDimension('1')->setRowHeight(25); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('A')->setWidth(100); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('B')->setWidth(18); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('C')->setWidth(20); $objPHPExcel->setActiveSheetIndex(0)->getStyle("B2:F4000")->applyFromArray($columnAlignRight); $objPHPExcel->setActiveSheetIndex(0)->getStyle("C2:F4000")->applyFromArray($columnAlignRight); $objPHPExcel->setActiveSheetIndex(0)->getStyle("E2:F4000")->applyFromArray($columnAlignRight); $objPHPExcel->setActiveSheetIndex(0)->getStyle("F2:F4000")->applyFromArray($columnAlignRight); $objPHPExcel->setActiveSheetIndex(0)->getStyle("A1:F1")->applyFromArray($headerStyle); /*****************************************************/ /********************* EXCELL Data *******************/ /*****************************************************/ // Add header $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A1', $mod_strings['LBL_CONTRACTOR'] ) ->setCellValue('B1', $mod_strings['LBL_SOLD_AMOUNT']) ->setCellValue('C1', $mod_strings['LBL_VALUE_SALES']) ->setCellValue('D1', $mod_strings['LBL_AVERAGE_PRICE']) ->setCellValue('E1', $mod_strings['LBL_COST']) ->setCellValue('F1', $mod_strings['LBL_MARGIN']); /*****************************************************/ /********************* EXCELL Data *******************/ /*****************************************************/ // Add all data $lastRowNumber = 2; $rowNumber = 2; foreach ( $newArray as $contractorName => $contractor ) { $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A'.($rowNumber), $contractorName) ->setCellValue('B'.($rowNumber), number_format($contractor["IloscSum"], 2, '.', '')) ->setCellValue('C'.($rowNumber), number_format($contractor["SoldSum"], 2, '.', '')) ->setCellValue('D'.($rowNumber), number_format($contractor["SredniaSum"], 2, '.', '')) ->setCellValue('E'.($rowNumber), number_format($contractor["KosztSum"], 2, '.', '')) ->setCellValue('F'.($rowNumber), number_format($contractor["MarzaSum"], 2, '.', '')." %") ->getStyle("A".$rowNumber.":F".$rowNumber)->applyFromArray($categoryStyle); // Formatowanie walutowe $objPHPExcel->setActiveSheetIndex(0)->getStyle('B'.($rowNumber))->getNumberFormat()->setFormatCode("#"); $objPHPExcel->setActiveSheetIndex(0)->getStyle('C'.($rowNumber))->getNumberFormat()->setFormatCode("#,#0.#0 zł"); $objPHPExcel->setActiveSheetIndex(0)->getStyle('D'.($rowNumber))->getNumberFormat()->setFormatCode("#,#0.#0 zł"); $objPHPExcel->setActiveSheetIndex(0)->getStyle('E'.($rowNumber))->getNumberFormat()->setFormatCode("#,#0.#0 zł"); $objPHPExcel->setActiveSheetIndex(0)->getStyle('F'.($rowNumber))->getNumberFormat()->setFormatCode("#0.#0"); // Nazwa kategorii wyrównane do lewej $objPHPExcel->setActiveSheetIndex(0)->getStyle("A".$rowNumber)->applyFromArray($columnAlignLeft); // Wyświetla kontrahentów foreach ( $contractor as $categoryName => $category ) { if ( $categoryName != "IloscSum" && $categoryName != "SoldSum" && $categoryName != "SredniaSum" && $categoryName != "KosztSum" && $categoryName != "MarzaSum" && $categoryName != "StanSum" && $categoryName != "WartoscSum") { $rowNumber++; $lastRowNumber++; $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A'.($rowNumber), " ".$categoryName) ->setCellValue('B'.($rowNumber), number_format($category["IloscSum"], 2, '.', '')) ->setCellValue('C'.($rowNumber), number_format($category["SoldSum"], 2, '.', '')) ->setCellValue('D'.($rowNumber), number_format($category["SredniaSum"], 2, '.', '')) ->setCellValue('E'.($rowNumber), number_format($category["KosztSum"], 2, '.', '')) ->setCellValue('F'.($rowNumber), number_format($category["MarzaSum"], 2, '.', '')." %") ->getStyle("A".$rowNumber.":F".$rowNumber)->applyFromArray($subCategoryStyle); // Formatowanie walutowe $objPHPExcel->setActiveSheetIndex(0)->getStyle('B'.($rowNumber))->getNumberFormat()->setFormatCode("#"); $objPHPExcel->setActiveSheetIndex(0)->getStyle('C'.($rowNumber))->getNumberFormat()->setFormatCode("#,#0.#0 zł"); $objPHPExcel->setActiveSheetIndex(0)->getStyle('D'.($rowNumber))->getNumberFormat()->setFormatCode("#,#0.#0 zł"); $objPHPExcel->setActiveSheetIndex(0)->getStyle('E'.($rowNumber))->getNumberFormat()->setFormatCode("#,#0.#0 zł"); $objPHPExcel->setActiveSheetIndex(0)->getStyle('F'.($rowNumber))->getNumberFormat()->setFormatCode("#0.#0"); // Nazwa kategorii wyrównane do lewej $objPHPExcel->setActiveSheetIndex(0)->getStyle("A".$rowNumber)->applyFromArray($columnAlignLeft); // Wyświetla podkategorie foreach ( $category as $subCategoryName => $subCategory ) { if ( $subCategoryName != "IloscSum" && $subCategoryName != "SoldSum" && $subCategoryName != "SredniaSum" && $subCategoryName != "KosztSum" && $subCategoryName != "MarzaSum" && $subCategoryName != "" && $subCategoryName != "SoldSumNormal" && $subCategoryName != "IloscNormal" && $subCategoryName != "StanSum" && $subCategoryName != "WartoscSum") { $rowNumber++; $lastRowNumber++; $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A'.($rowNumber), " ".$subCategoryName) ->setCellValue('B'.($rowNumber), number_format($subCategory["IloscSum"], 2, '.', '')) ->setCellValue('C'.($rowNumber), number_format($subCategory["SoldSum"], 2, '.', '')) ->setCellValue('D'.($rowNumber), number_format($subCategory["SredniaSum"], 2, '.', '')) ->setCellValue('E'.($rowNumber), number_format($subCategory["KosztSum"], 2, '.', '')) ->setCellValue('F'.($rowNumber), number_format($subCategory["MarzaSum"], 2, '.', '')." %") ->getStyle("A".$rowNumber.":F".$rowNumber)->applyFromArray($subSubCategoryStyle); // Formatowanie walutowe $objPHPExcel->setActiveSheetIndex(0)->getStyle('B'.($rowNumber))->getNumberFormat()->setFormatCode("#"); $objPHPExcel->setActiveSheetIndex(0)->getStyle('C'.($rowNumber))->getNumberFormat()->setFormatCode("#,#0.#0 zł"); $objPHPExcel->setActiveSheetIndex(0)->getStyle('D'.($rowNumber))->getNumberFormat()->setFormatCode("#,#0.#0 zł"); $objPHPExcel->setActiveSheetIndex(0)->getStyle('E'.($rowNumber))->getNumberFormat()->setFormatCode("#,#0.#0 zł"); $objPHPExcel->setActiveSheetIndex(0)->getStyle('F'.($rowNumber))->getNumberFormat()->setFormatCode("#0.#0"); // Nazwa produktu wyrównane do lewej $objPHPExcel->setActiveSheetIndex(0)->getStyle("A".$rowNumber)->applyFromArray($columnAlignLeft); $objPHPExcel->setActiveSheetIndex(0)->getRowDimension($rowNumber)->setOutlineLevel(1); $objPHPExcel->setActiveSheetIndex(0)->getRowDimension($rowNumber)->setVisible(true); // Wyświetla produkty foreach ( $subCategory as $productName => $product ) { if ( $product["name"] != "IloscSum" && $product["name"] != "SoldSum" && $product["name"] != "SredniaSum" && $product["name"] != "KosztSum" && $product["name"] != "MarzaSum" && $product["name"] != "" ) { $rowNumber++; $lastRowNumber++; $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A'.($rowNumber), " ".$product["name"]) ->setCellValue('B'.($rowNumber), number_format($product["ilosc"], 2, '.', '')) ->setCellValue('C'.($rowNumber), number_format($product["netto"], 2, '.', '')) ->setCellValue('D'.($rowNumber), number_format($product["srednia"], 2, '.','')) ->setCellValue('E'.($rowNumber), number_format($product["koszt"], 2, '.', '')) ->setCellValue('F'.($rowNumber), number_format($product["marza"], 2, '.', '')." %"); // Formatowanie walutowe $objPHPExcel->setActiveSheetIndex(0)->getStyle('B'.($rowNumber))->getNumberFormat()->setFormatCode("#"); $objPHPExcel->setActiveSheetIndex(0)->getStyle('C'.($rowNumber))->getNumberFormat()->setFormatCode("#,#0.#0 zł"); $objPHPExcel->setActiveSheetIndex(0)->getStyle('D'.($rowNumber))->getNumberFormat()->setFormatCode("#,#0.#0 zł"); $objPHPExcel->setActiveSheetIndex(0)->getStyle('E'.($rowNumber))->getNumberFormat()->setFormatCode("#,#0.#0 zł"); $objPHPExcel->setActiveSheetIndex(0)->getStyle('F'.($rowNumber))->getNumberFormat()->setFormatCode("#0.#0"); // Nazwa produktu wyrównane do lewej $objPHPExcel->setActiveSheetIndex(0)->getStyle("A".$rowNumber)->applyFromArray($columnAlignLeft); $objPHPExcel->setActiveSheetIndex(0)->getRowDimension($rowNumber)->setOutlineLevel(2); $objPHPExcel->setActiveSheetIndex(0)->getRowDimension($rowNumber)->setVisible(false); } } $objPHPExcel->setActiveSheetIndex(0)->getRowDimension($rowNumber+1)->setCollapsed(true); } } } } $rowNumber++; $lastRowNumber++; } // Sumy -------------------------------------------------------------------------------------------------- $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A'.($lastRowNumber), "Podsumowanie: ") ->setCellValue('B'.($lastRowNumber), number_format($sum['IloscSumSum'], 2, '.', '')) ->setCellValue('C'.($lastRowNumber), number_format($sum['SoldSumSum'], 2, '.', '')) ->setCellValue('D'.($lastRowNumber), number_format($sum['SredniaSumSum'], 2, '.', '')) ->setCellValue('E'.($lastRowNumber), number_format($sum['KosztSumSum'], 2, '.', '')) ->setCellValue('F'.($lastRowNumber), number_format($sum['MarzaSumSum'], 2, '.', '')); // Formatowanie walutowe $objPHPExcel->setActiveSheetIndex(0)->getStyle('B'.($lastRowNumber))->getNumberFormat()->setFormatCode("#"); $objPHPExcel->setActiveSheetIndex(0)->getStyle('C'.($lastRowNumber))->getNumberFormat()->setFormatCode("#,#0.#0 zł"); $objPHPExcel->setActiveSheetIndex(0)->getStyle('D'.($lastRowNumber))->getNumberFormat()->setFormatCode("#,#0.#0 zł"); $objPHPExcel->setActiveSheetIndex(0)->getStyle('E'.($lastRowNumber))->getNumberFormat()->setFormatCode("#,#0.#0 zł"); $objPHPExcel->setActiveSheetIndex(0)->getStyle('F'.($lastRowNumber))->getNumberFormat()->setFormatCode("#0.#0"); // Formatowanie wiersza sum ----------------------------------------------------------------------------- $objPHPExcel->setActiveSheetIndex(0)->getStyle("A".$lastRowNumber.":F".$lastRowNumber)->applyFromArray($headerStyle); $objPHPExcel->setActiveSheetIndex(0)->getStyle("A".$lastRowNumber)->applyFromArray($columnAlignRight); $objPHPExcel->setActiveSheetIndex(0)->getStyle("B".$lastRowNumber)->applyFromArray($columnAlignRight); $objPHPExcel->setActiveSheetIndex(0)->getStyle("C".$lastRowNumber)->applyFromArray($columnAlignRight); $objPHPExcel->setActiveSheetIndex(0)->getStyle("D".$lastRowNumber)->applyFromArray($columnAlignRight); $objPHPExcel->setActiveSheetIndex(0)->getStyle("E".$lastRowNumber)->applyFromArray($columnAlignRight); $objPHPExcel->setActiveSheetIndex(0)->getStyle("F".$lastRowNumber)->applyFromArray($columnAlignRight); // Rename worksheet $objPHPExcel->getActiveSheet()->setTitle('Raport sprzedaży'); // Set active sheet index to the first sheet, so Excel opens this as the first sheet $objPHPExcel->setActiveSheetIndex(0); // Save Excel 2007 file $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); $objWriter->save( __DIR__ . "/ExcelFiles/ReportSalesByContractor.xls"); ?>