mirror of
https://github.com/Karaka-Management/oms-Script.git
synced 2026-01-11 20:38:42 +00:00
1392 lines
49 KiB
PHP
Executable File
1392 lines
49 KiB
PHP
Executable File
<?php
|
|
declare(strict_types=1);
|
|
|
|
require __DIR__ . '/Worker.php';
|
|
$lang = $this->getData('lang');
|
|
|
|
\date_default_timezone_set('Europe/London');
|
|
|
|
// Create new PHPExcel object
|
|
$excel = new \phpOMS\Utils\Excel\Excel();
|
|
|
|
// Styles
|
|
// Table Head
|
|
$headStyle = new PHPExcel_Style();
|
|
$headStyle->applyFromArray(
|
|
[
|
|
'alignment' => [
|
|
'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
|
|
'vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER,
|
|
],
|
|
'fill' => [
|
|
'type' => PHPExcel_Style_Fill::FILL_SOLID,
|
|
],
|
|
'borders' => [
|
|
'bottom' => [
|
|
'style' => PHPExcel_Style_Border::BORDER_THIN,
|
|
'color' => ['argb' => 'FF000000'],
|
|
],
|
|
'right' => [
|
|
'style' => PHPExcel_Style_Border::BORDER_THIN,
|
|
'color' => ['argb' => 'FF000000'],
|
|
],
|
|
'top' => [
|
|
'style' => PHPExcel_Style_Border::BORDER_THIN,
|
|
'color' => ['argb' => 'FF000000'],
|
|
],
|
|
'left' => [
|
|
'style' => PHPExcel_Style_Border::BORDER_THIN,
|
|
'color' => ['argb' => 'FF000000'],
|
|
],
|
|
],
|
|
]
|
|
);
|
|
// Table Sub
|
|
// Table Input
|
|
$inputStyle = new PHPExcel_Style();
|
|
$inputStyle->applyFromArray(
|
|
[
|
|
'fill' => [
|
|
'type' => PHPExcel_Style_Fill::FILL_SOLID,
|
|
'color' => ['argb' => 'FFA9FFB9'],
|
|
],
|
|
'borders' => [
|
|
'bottom' => [
|
|
'style' => PHPExcel_Style_Border::BORDER_THIN,
|
|
'color' => ['argb' => 'FFD1D1D1'],
|
|
],
|
|
'right' => [
|
|
'style' => PHPExcel_Style_Border::BORDER_THIN,
|
|
'color' => ['argb' => 'FFD1D1D1'],
|
|
],
|
|
'top' => [
|
|
'style' => PHPExcel_Style_Border::BORDER_THIN,
|
|
'color' => ['argb' => 'FFD1D1D1'],
|
|
],
|
|
'left' => [
|
|
'style' => PHPExcel_Style_Border::BORDER_THIN,
|
|
'color' => ['argb' => 'FFD1D1D1'],
|
|
],
|
|
],
|
|
]
|
|
);
|
|
// Colored1
|
|
$colored1Style = new PHPExcel_Style();
|
|
$colored1Style->applyFromArray(
|
|
[
|
|
'fill' => [
|
|
'type' => PHPExcel_Style_Fill::FILL_SOLID,
|
|
'color' => ['argb' => 'FFFFFF00'],
|
|
],
|
|
'borders' => [
|
|
'bottom' => [
|
|
'style' => PHPExcel_Style_Border::BORDER_THIN,
|
|
'color' => ['argb' => 'FFD1D1D1'],
|
|
],
|
|
'right' => [
|
|
'style' => PHPExcel_Style_Border::BORDER_THIN,
|
|
'color' => ['argb' => 'FFD1D1D1'],
|
|
],
|
|
'top' => [
|
|
'style' => PHPExcel_Style_Border::BORDER_THIN,
|
|
'color' => ['argb' => 'FFD1D1D1'],
|
|
],
|
|
'left' => [
|
|
'style' => PHPExcel_Style_Border::BORDER_THIN,
|
|
'color' => ['argb' => 'FFD1D1D1'],
|
|
],
|
|
],
|
|
]
|
|
);
|
|
// Variable but don't change
|
|
$fixedStyle = new PHPExcel_Style();
|
|
$fixedStyle->applyFromArray(
|
|
[
|
|
'fill' => [
|
|
'type' => PHPExcel_Style_Fill::FILL_SOLID,
|
|
'color' => ['argb' => 'FFDADADA'],
|
|
],
|
|
'borders' => [
|
|
'bottom' => [
|
|
'style' => PHPExcel_Style_Border::BORDER_THIN,
|
|
'color' => ['argb' => 'FFD1D1D1'],
|
|
],
|
|
'right' => [
|
|
'style' => PHPExcel_Style_Border::BORDER_THIN,
|
|
'color' => ['argb' => 'FFD1D1D1'],
|
|
],
|
|
'top' => [
|
|
'style' => PHPExcel_Style_Border::BORDER_THIN,
|
|
'color' => ['argb' => 'FFD1D1D1'],
|
|
],
|
|
'left' => [
|
|
'style' => PHPExcel_Style_Border::BORDER_THIN,
|
|
'color' => ['argb' => 'FFD1D1D1'],
|
|
],
|
|
],
|
|
]
|
|
);
|
|
// Table Total
|
|
$totalStyle = new PHPExcel_Style();
|
|
$totalStyle->applyFromArray(
|
|
[
|
|
'font' => [
|
|
'bold' => true,
|
|
],
|
|
'fill' => [
|
|
'type' => PHPExcel_Style_Fill::FILL_SOLID,
|
|
'color' => ['argb' => 'FF97C8FF'],
|
|
],
|
|
'borders' => [
|
|
'bottom' => [
|
|
'style' => PHPExcel_Style_Border::BORDER_THIN,
|
|
'color' => ['argb' => 'FF000000'],
|
|
],
|
|
'right' => [
|
|
'style' => PHPExcel_Style_Border::BORDER_THIN,
|
|
'color' => ['argb' => 'FF000000'],
|
|
],
|
|
'top' => [
|
|
'style' => PHPExcel_Style_Border::BORDER_THIN,
|
|
'color' => ['argb' => 'FF000000'],
|
|
],
|
|
'left' => [
|
|
'style' => PHPExcel_Style_Border::BORDER_THIN,
|
|
'color' => ['argb' => 'FF000000'],
|
|
],
|
|
],
|
|
]
|
|
);
|
|
// Table Cell
|
|
// Table Outer
|
|
$outerStyle = new PHPExcel_Style();
|
|
$outerStyle->applyFromArray(
|
|
[
|
|
'borders' => [
|
|
'outline' => [
|
|
'style' => PHPExcel_Style_Border::BORDER_THIN,
|
|
'color' => ['argb' => 'FF000000'],
|
|
],
|
|
],
|
|
]
|
|
);
|
|
|
|
// Negativ value
|
|
$badBudget = new PHPExcel_Style_Conditional();
|
|
$badBudget->setConditionType(PHPExcel_Style_Conditional::CONDITION_CELLIS);
|
|
$badBudget->setOperatorType(PHPExcel_Style_Conditional::OPERATOR_LESSTHAN);
|
|
$badBudget->addCondition('0');
|
|
$badBudget->getStyle()->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_RED);
|
|
$badBudget->getStyle()->getFont()->setBold(true);
|
|
|
|
// Set document properties
|
|
$excel->getProperties()->setCreator('Karaka Solutions')
|
|
->setLastModifiedBy('Dennis Eichhorn')
|
|
->setTitle('Event & Course Budget')
|
|
->setSubject('Budget Evaluation')
|
|
->setDescription('Document used in order to evaluate the event & course expenses.')
|
|
->setKeywords('OMS Budget Event Course')
|
|
->setCategory('Controlling');
|
|
|
|
$budget = [
|
|
'A' => 69000,
|
|
'B' => 9000,
|
|
'D' => 15000,
|
|
'E' => 60000,
|
|
'I' => 0,
|
|
'K' => 141000,
|
|
'M' => 0,
|
|
'P' => 0,
|
|
'R' => 15000,
|
|
'S' => 0,
|
|
'U' => 14000,
|
|
'V' => 77000,
|
|
'' => 0,
|
|
];
|
|
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A1:K1')
|
|
->setCellValue('A1', $lang['Overview'])
|
|
->getStyle('A1:K1')
|
|
->getAlignment()
|
|
->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
|
$excel->getActiveSheet()
|
|
->setCellValue('A3', $lang['FiscalYearStart'])
|
|
->setCellValue('B3', $fiscal_start->format('Y/m/d'))
|
|
->setCellValue('D3', $lang['FiscalYearEnd'])
|
|
->setCellValue('E3', $fiscal_end->format('Y/m/d'))
|
|
->setCellValue('G3', $lang['Cutoff'])
|
|
->setCellValue('H3', $fiscal_current->format('Y/m/d'));
|
|
|
|
// Cost Object
|
|
$i = 5;
|
|
$excel->getActiveSheet()
|
|
->setCellValue('A' . $i, $lang['Type'])
|
|
->setCellValue('B' . $i, $lang['Name'])
|
|
->setCellValue('C' . $i, $lang['History'])
|
|
->setCellValue('D' . $i, $lang['Actual'])
|
|
->setCellValue('E' . $i, $lang['Forecast'])
|
|
->setCellValue('F' . $i, $lang['Budget'])
|
|
->setCellValue('G' . $i, $lang['DiffBudget%']);
|
|
|
|
++$i;
|
|
$start = $i;
|
|
foreach ($types as $key => $stype) {
|
|
$excel->getActiveSheet()
|
|
->setCellValue('A' . $i, $key)
|
|
->setCellValue('B' . $i, $stype)
|
|
->setCellValue('C' . $i, (isset($type[$key][$fiscal_end_prev->format('Y')]['value']) ? $type[$key][$fiscal_end_prev->format('Y')]['value'] : 0.0))
|
|
->setCellValue('D' . $i, (isset($type[$key][$fiscal_end->format('Y')]['value']) ? $type[$key][$fiscal_end->format('Y')]['value'] : 0.0))
|
|
->setCellValue('E' . $i, '=D' . $i . '/' . \abs(((int) $fiscal_current->format('m') - ((int) $fiscal_end->format('m') + 1)) % 12 + 1) . '*12')
|
|
->setCellValue('F' . $i, $budget[$key])
|
|
->setCellValue('G' . $i, '=(E' . $i . '-F' . $i . ')/F' . $i);
|
|
|
|
++$i;
|
|
}
|
|
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':B' . $i);
|
|
|
|
$excel->getActiveSheet()
|
|
->setCellValue('A' . $i, $lang['Total'])
|
|
->setCellValue('C' . $i, '=SUM(C' . $start . ':C' . ($i - 1) . ')')
|
|
->setCellValue('D' . $i, '=SUM(D' . $start . ':D' . ($i - 1) . ')')
|
|
->setCellValue('E' . $i, '=SUM(E' . $start . ':E' . ($i - 1) . ')')
|
|
->setCellValue('F' . $i, '=SUM(F' . $start . ':F' . ($i - 1) . ')')
|
|
->setCellValue('G' . $i, '=(E' . $i . '-F' . $i . ')/F' . $i);
|
|
|
|
// Cost Center
|
|
$i += 2;
|
|
$excel->getActiveSheet()
|
|
->setCellValue('A' . $i, $lang['CostCenter'])
|
|
->setCellValue('B' . $i, $lang['Description'])
|
|
->setCellValue('C' . $i, $lang['History'])
|
|
->setCellValue('D' . $i, $lang['Actual'])
|
|
->setCellValue('E' . $i, $lang['Forecast'])
|
|
->setCellValue('F' . $i, $lang['DiffHistory%']);
|
|
|
|
++$i;
|
|
$start = $i;
|
|
foreach ($costcenter as $key => $cc) {
|
|
$excel->getActiveSheet()
|
|
->setCellValue('A' . $i, $key)
|
|
->setCellValue('B' . $i, $ccDef[$key])
|
|
->setCellValue('C' . $i, (isset($costcenter[$key][$fiscal_end_prev->format('Y')]['value']) ? $costcenter[$key][$fiscal_end_prev->format('Y')]['value'] : 0.0))
|
|
->setCellValue('D' . $i, (isset($costcenter[$key][$fiscal_end->format('Y')]['value']) ? $costcenter[$key][$fiscal_end->format('Y')]['value'] : 0.0))
|
|
->setCellValue('E' . $i, '=D' . $i . '/' . \abs(((int) $fiscal_current->format('m') - ((int) $fiscal_end->format('m') + 1)) % 12 + 1) . '*12')
|
|
->setCellValue('F' . $i, '=(E' . $i . '-C' . $i . ')/C' . $i);
|
|
|
|
++$i;
|
|
}
|
|
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':B' . $i);
|
|
|
|
$excel->getActiveSheet()
|
|
->setCellValue('A' . $i, $lang['Total'])
|
|
->setCellValue('C' . $i, '=SUM(C' . $start . ':C' . ($i - 1) . ')')
|
|
->setCellValue('D' . $i, '=SUM(D' . $start . ':D' . ($i - 1) . ')')
|
|
->setCellValue('E' . $i, '=SUM(E' . $start . ':E' . ($i - 1) . ')')
|
|
->setCellValue('F' . $i, '=(E' . $i . '-C' . $i . ')/C' . $i);
|
|
|
|
// Account
|
|
$i += 2;
|
|
$excel->getActiveSheet()
|
|
->setCellValue('A' . $i, $lang['Account'])
|
|
->setCellValue('B' . $i, $lang['Description'])
|
|
->setCellValue('C' . $i, $lang['History'])
|
|
->setCellValue('D' . $i, $lang['Actual'])
|
|
->setCellValue('E' . $i, $lang['Forecast'])
|
|
->setCellValue('F' . $i, $lang['DiffHistory%']);
|
|
|
|
++$i;
|
|
$start = $i;
|
|
foreach ($account as $key => $ac) {
|
|
$excel->getActiveSheet()
|
|
->setCellValue('A' . $i, $key)
|
|
->setCellValue('B' . $i, $acDef[$key])
|
|
->setCellValue('C' . $i, (isset($account[$key][$fiscal_end_prev->format('Y')]['value']) ? $account[$key][$fiscal_end_prev->format('Y')]['value'] : 0.0))
|
|
->setCellValue('D' . $i, (isset($account[$key][$fiscal_end->format('Y')]['value']) ? $account[$key][$fiscal_end->format('Y')]['value'] : 0.0))
|
|
->setCellValue('E' . $i, '=D' . $i . '/' . \abs(((int) $fiscal_current->format('m') - ((int) $fiscal_end->format('m') + 1)) % 12 + 1) . '*12')
|
|
->setCellValue('F' . $i, '=(E' . $i . '-C' . $i . ')/C' . $i);
|
|
|
|
++$i;
|
|
}
|
|
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':B' . $i);
|
|
|
|
$excel->getActiveSheet()
|
|
->setCellValue('A' . $i, $lang['Total'])
|
|
->setCellValue('C' . $i, '=SUM(C' . $start . ':C' . ($i - 1) . ')')
|
|
->setCellValue('D' . $i, '=SUM(D' . $start . ':D' . ($i - 1) . ')')
|
|
->setCellValue('E' . $i, '=SUM(E' . $start . ':E' . ($i - 1) . ')')
|
|
->setCellValue('F' . $i, '=(E' . $i . '-C' . $i . ')/C' . $i);
|
|
|
|
// Formatting
|
|
$excel->getActiveSheet()
|
|
->getStyle('F6:F19')
|
|
->getNumberFormat()
|
|
->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1);
|
|
|
|
$excel->getActiveSheet()
|
|
->getStyle('F22:F' . $i)
|
|
->getNumberFormat()
|
|
->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_PERCENTAGE_00);
|
|
|
|
$excel->getActiveSheet()
|
|
->getStyle('G6:G19')
|
|
->getNumberFormat()
|
|
->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_PERCENTAGE_00);
|
|
|
|
$excel->getActiveSheet()
|
|
->duplicateStyle($fixedStyle, 'B3')
|
|
->duplicateStyle($fixedStyle, 'E3')
|
|
->duplicateStyle($fixedStyle, 'H3');
|
|
|
|
foreach (['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'] as $column) {
|
|
$excel->getActiveSheet()
|
|
->getColumnDimension($column)
|
|
->setAutoSize(true);
|
|
}
|
|
|
|
// Rename worksheet
|
|
$excel->getActiveSheet()->setTitle('Overview');
|
|
|
|
$excel->createSheet(1);
|
|
|
|
$excel->setActiveSheetIndex(1)
|
|
->mergeCells('A1:K1')
|
|
->setCellValue('A1', $lang['AdviceBudget'])
|
|
->getStyle('A1:K1')
|
|
->getAlignment()
|
|
->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
|
$excel->getActiveSheet()
|
|
->setCellValue('A3', $lang['FiscalYearStart'])
|
|
->setCellValue('B3', $fiscal_start->format('Y/m/d'))
|
|
->setCellValue('D3', $lang['FiscalYearEnd'])
|
|
->setCellValue('E3', $fiscal_end->format('Y/m/d'))
|
|
->setCellValue('G3', $lang['Cutoff'])
|
|
->setCellValue('H3', $fiscal_current->format('Y/m/d'));
|
|
|
|
$excel->getActiveSheet()
|
|
->setCellValue('A5', $lang['Type'])
|
|
->setCellValue('B5', $lang['ID'])
|
|
->setCellValue('C5', $lang['Description'])
|
|
->setCellValue('D5', $lang['Start'])
|
|
->setCellValue('E5', $lang['End'])
|
|
->setCellValue('F5', $lang['Actual'])
|
|
->setCellValue('G5', $lang['Pending'])
|
|
->setCellValue('H5', $lang['Total']);
|
|
|
|
$i = $start = 6;
|
|
foreach ($costobject as $key => $co) {
|
|
if (\strrpos($key, 'B', -\strlen($key)) !== false && isset($co[$fiscal_end->format('Y')]['value'])) {
|
|
$excel->getActiveSheet()
|
|
->setCellValue('A' . $i, '=MID(B' . $i . ', 1, 1)')
|
|
->setCellValue('B' . $i, $key)
|
|
->setCellValue('C' . $i, (isset($courseList[$key]) ? $courseList[$key][2] : ''))
|
|
->setCellValue('D' . $i, isset($courseList[$key][4]) ? $courseList[$key][4] : '')
|
|
->setCellValue('E' . $i, isset($courseList[$key][5]) ? $courseList[$key][5] : '')
|
|
->setCellValue('F' . $i, $co[$fiscal_end->format('Y')]['value'])
|
|
->setCellValue('G' . $i, 0.0)
|
|
->setCellValue('H' . $i, '=F' . $i . '+G' . $i);
|
|
|
|
++$i;
|
|
}
|
|
}
|
|
|
|
foreach (['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'] as $column) {
|
|
$excel->getActiveSheet()
|
|
->getColumnDimension($column)
|
|
->setAutoSize(true);
|
|
}
|
|
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':E' . $i)
|
|
->setCellValue('A' . $i, $lang['Total'])
|
|
->setCellValue('F' . $i, '=SUM(F' . $start . ':F' . ($i - 1) . ')')
|
|
->setCellValue('G' . $i, '=SUM(G' . $start . ':G' . ($i - 1) . ')')
|
|
->setCellValue('H' . $i, '=F' . $i . '+G' . $i);
|
|
|
|
++$i;
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':G' . $i)
|
|
->setCellValue('A' . $i, $lang['Forecast'])
|
|
->setCellValue('H' . $i, '=H' . ($i - 1) . '/(1+MOD(MONTH($H$3)-(MONTH($E$3)+1),12))*12');
|
|
|
|
++$i;
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':G' . $i)
|
|
->setCellValue('A' . $i, $lang['Budget'])
|
|
->setCellValue('H' . $i, '=' . $budget['B']);
|
|
|
|
++$i;
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':G' . $i)
|
|
->setCellValue('A' . $i, $lang['Remaining'])
|
|
->setCellValue('H' . $i, '=H' . ($i - 1) . '-H' . ($i - 3));
|
|
|
|
++$i;
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':G' . $i)
|
|
->setCellValue('A' . $i, $lang['RemainingForecast'])
|
|
->setCellValue('H' . $i, '=H' . ($i - 2) . '-H' . ($i - 3));
|
|
|
|
foreach (['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'] as $column) {
|
|
$excel->getActiveSheet()
|
|
->getColumnDimension($column)
|
|
->setAutoSize(true);
|
|
}
|
|
|
|
$excel->getActiveSheet()
|
|
->duplicateStyle($colored1Style, 'H' . $start . ':H' . ($i - 2))
|
|
->duplicateStyle($inputStyle, 'G' . $start . ':G' . ($i - 2))
|
|
->duplicateStyle($fixedStyle, 'B3')
|
|
->duplicateStyle($fixedStyle, 'E3')
|
|
->duplicateStyle($fixedStyle, 'H3')
|
|
->duplicateStyle($headStyle, 'A5:H5')
|
|
->duplicateStyle($totalStyle, 'A' . ($i - 4) . ':H' . $i);
|
|
|
|
$excel->getActiveSheet()
|
|
->getStyle('F6:H' . $i)
|
|
->getNumberFormat()
|
|
->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1);
|
|
|
|
$conditionalStyles = $excel->getActiveSheet()->getStyle('H' . $i)->getConditionalStyles();
|
|
$conditionalStyles[] = $badBudget;
|
|
$excel->getActiveSheet()->getStyle('H' . $i)->setConditionalStyles($conditionalStyles);
|
|
|
|
$excel->getActiveSheet()->setTitle('Advice');
|
|
|
|
$excel->createSheet(2);
|
|
|
|
$excel->setActiveSheetIndex(2)
|
|
->mergeCells('A1:K1')
|
|
->setCellValue('A1', $lang['DemoBudget'])
|
|
->getStyle('A1:K1')
|
|
->getAlignment()
|
|
->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
|
$excel->getActiveSheet()
|
|
->setCellValue('A3', $lang['FiscalYearStart'])
|
|
->setCellValue('B3', $fiscal_start->format('Y/m/d'))
|
|
->setCellValue('D3', $lang['FiscalYearEnd'])
|
|
->setCellValue('E3', $fiscal_end->format('Y/m/d'))
|
|
->setCellValue('G3', $lang['Cutoff'])
|
|
->setCellValue('H3', $fiscal_current->format('Y/m/d'));
|
|
|
|
$excel->getActiveSheet()
|
|
->setCellValue('A5', $lang['Type'])
|
|
->setCellValue('B5', $lang['ID'])
|
|
->setCellValue('C5', $lang['Description'])
|
|
->setCellValue('D5', $lang['Start'])
|
|
->setCellValue('E5', $lang['End'])
|
|
->setCellValue('F5', $lang['Actual'])
|
|
->setCellValue('G5', $lang['Pending'])
|
|
->setCellValue('H5', $lang['Total']);
|
|
|
|
$i = $start = 6;
|
|
foreach ($costobject as $key => $co) {
|
|
if (\strrpos($key, 'D', -\strlen($key)) !== false && isset($co[$fiscal_end->format('Y')]['value'])) {
|
|
$excel->getActiveSheet()
|
|
->setCellValue('A' . $i, '=MID(B' . $i . ', 1, 1)')
|
|
->setCellValue('B' . $i, $key)
|
|
->setCellValue('C' . $i, (isset($courseList[$key]) ? $courseList[$key][2] : ''))
|
|
->setCellValue('D' . $i, isset($courseList[$key][4]) ? $courseList[$key][4] : '')
|
|
->setCellValue('E' . $i, isset($courseList[$key][5]) ? $courseList[$key][5] : '')
|
|
->setCellValue('F' . $i, $co[$fiscal_end->format('Y')]['value'])
|
|
->setCellValue('G' . $i, 0.0)
|
|
->setCellValue('H' . $i, '=F' . $i . '+G' . $i);
|
|
|
|
++$i;
|
|
}
|
|
}
|
|
|
|
foreach (['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'] as $column) {
|
|
$excel->getActiveSheet()
|
|
->getColumnDimension($column)
|
|
->setAutoSize(true);
|
|
}
|
|
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':E' . $i)
|
|
->setCellValue('A' . $i, $lang['Total'])
|
|
->setCellValue('F' . $i, '=SUM(F' . $start . ':F' . ($i - 1) . ')')
|
|
->setCellValue('G' . $i, '=SUM(G' . $start . ':G' . ($i - 1) . ')')
|
|
->setCellValue('H' . $i, '=F' . $i . '+G' . $i);
|
|
|
|
++$i;
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':G' . $i)
|
|
->setCellValue('A' . $i, $lang['Forecast'])
|
|
->setCellValue('H' . $i, '=H' . ($i - 1) . '/(1+MOD(MONTH($H$3)-(MONTH($E$3)+1),12))*12');
|
|
|
|
++$i;
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':G' . $i)
|
|
->setCellValue('A' . $i, $lang['Budget'])
|
|
->setCellValue('H' . $i, '=' . $budget['D']);
|
|
|
|
++$i;
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':G' . $i)
|
|
->setCellValue('A' . $i, $lang['Remaining'])
|
|
->setCellValue('H' . $i, '=H' . ($i - 1) . '-H' . ($i - 3));
|
|
|
|
++$i;
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':G' . $i)
|
|
->setCellValue('A' . $i, $lang['RemainingForecast'])
|
|
->setCellValue('H' . $i, '=H' . ($i - 2) . '-H' . ($i - 3));
|
|
|
|
foreach (['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'] as $column) {
|
|
$excel->getActiveSheet()
|
|
->getColumnDimension($column)
|
|
->setAutoSize(true);
|
|
}
|
|
|
|
$excel->getActiveSheet()
|
|
->duplicateStyle($colored1Style, 'H' . $start . ':H' . ($i - 2))
|
|
->duplicateStyle($inputStyle, 'G' . $start . ':G' . ($i - 2))
|
|
->duplicateStyle($fixedStyle, 'B3')
|
|
->duplicateStyle($fixedStyle, 'E3')
|
|
->duplicateStyle($fixedStyle, 'H3')
|
|
->duplicateStyle($headStyle, 'A5:H5')
|
|
->duplicateStyle($totalStyle, 'A' . ($i - 4) . ':H' . $i);
|
|
|
|
$excel->getActiveSheet()
|
|
->getStyle('F6:H' . $i)
|
|
->getNumberFormat()
|
|
->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1);
|
|
|
|
$conditionalStyles = $excel->getActiveSheet()->getStyle('H' . $i)->getConditionalStyles();
|
|
$conditionalStyles[] = $badBudget;
|
|
$excel->getActiveSheet()->getStyle('H' . $i)->setConditionalStyles($conditionalStyles);
|
|
|
|
$excel->getActiveSheet()->setTitle('Demo');
|
|
|
|
// Sheet
|
|
$excel->createSheet(3);
|
|
|
|
$excel->setActiveSheetIndex(3)
|
|
->mergeCells('A1:K1')
|
|
->setCellValue('A1', $lang['BriefingBudget'])
|
|
->getStyle('A1:K1')
|
|
->getAlignment()
|
|
->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
|
$excel->getActiveSheet()
|
|
->setCellValue('A3', $lang['FiscalYearStart'])
|
|
->setCellValue('B3', $fiscal_start->format('Y/m/d'))
|
|
->setCellValue('D3', $lang['FiscalYearEnd'])
|
|
->setCellValue('E3', $fiscal_end->format('Y/m/d'))
|
|
->setCellValue('G3', $lang['Cutoff'])
|
|
->setCellValue('H3', $fiscal_current->format('Y/m/d'));
|
|
|
|
$excel->getActiveSheet()
|
|
->setCellValue('A5', $lang['Type'])
|
|
->setCellValue('B5', $lang['ID'])
|
|
->setCellValue('C5', $lang['Description'])
|
|
->setCellValue('D5', $lang['Start'])
|
|
->setCellValue('E5', $lang['End'])
|
|
->setCellValue('F5', $lang['Actual'])
|
|
->setCellValue('G5', $lang['Pending'])
|
|
->setCellValue('H5', $lang['Total']);
|
|
|
|
$i = $start = 6;
|
|
foreach ($costobject as $key => $co) {
|
|
if (\strrpos($key, 'E', -\strlen($key)) !== false && isset($co[$fiscal_end->format('Y')]['value'])) {
|
|
$excel->getActiveSheet()
|
|
->setCellValue('A' . $i, '=MID(B' . $i . ', 1, 1)')
|
|
->setCellValue('B' . $i, $key)
|
|
->setCellValue('C' . $i, (isset($courseList[$key]) ? $courseList[$key][2] : ''))
|
|
->setCellValue('D' . $i, isset($courseList[$key][4]) ? $courseList[$key][4] : '')
|
|
->setCellValue('E' . $i, isset($courseList[$key][5]) ? $courseList[$key][5] : '')
|
|
->setCellValue('F' . $i, $co[$fiscal_end->format('Y')]['value'])
|
|
->setCellValue('G' . $i, 0.0)
|
|
->setCellValue('H' . $i, '=F' . $i . '+G' . $i);
|
|
|
|
++$i;
|
|
}
|
|
}
|
|
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':E' . $i)
|
|
->setCellValue('A' . $i, $lang['Total'])
|
|
->setCellValue('F' . $i, '=SUM(F' . $start . ':F' . ($i - 1) . ')')
|
|
->setCellValue('G' . $i, '=SUM(G' . $start . ':G' . ($i - 1) . ')')
|
|
->setCellValue('H' . $i, '=F' . $i . '+G' . $i);
|
|
|
|
++$i;
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':G' . $i)
|
|
->setCellValue('A' . $i, $lang['Forecast'])
|
|
->setCellValue('H' . $i, '=H' . ($i - 1) . '/(1+MOD(MONTH($H$3)-(MONTH($E$3)+1),12))*12');
|
|
|
|
++$i;
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':G' . $i)
|
|
->setCellValue('A' . $i, $lang['Budget'])
|
|
->setCellValue('H' . $i, '=' . $budget['E']);
|
|
|
|
++$i;
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':G' . $i)
|
|
->setCellValue('A' . $i, $lang['Remaining'])
|
|
->setCellValue('H' . $i, '=H' . ($i - 1) . '-H' . ($i - 3));
|
|
|
|
++$i;
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':G' . $i)
|
|
->setCellValue('A' . $i, $lang['RemainingForecast'])
|
|
->setCellValue('H' . $i, '=H' . ($i - 2) . '-H' . ($i - 3));
|
|
|
|
foreach (['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'] as $column) {
|
|
$excel->getActiveSheet()
|
|
->getColumnDimension($column)
|
|
->setAutoSize(true);
|
|
}
|
|
|
|
$excel->getActiveSheet()
|
|
->duplicateStyle($colored1Style, 'H' . $start . ':H' . ($i - 2))
|
|
->duplicateStyle($inputStyle, 'G' . $start . ':G' . ($i - 2))
|
|
->duplicateStyle($fixedStyle, 'B3')
|
|
->duplicateStyle($fixedStyle, 'E3')
|
|
->duplicateStyle($fixedStyle, 'H3')
|
|
->duplicateStyle($headStyle, 'A5:H5')
|
|
->duplicateStyle($totalStyle, 'A' . ($i - 4) . ':H' . $i);
|
|
|
|
$excel->getActiveSheet()
|
|
->getStyle('F6:H' . $i)
|
|
->getNumberFormat()
|
|
->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1);
|
|
|
|
$conditionalStyles = $excel->getActiveSheet()->getStyle('H' . $i)->getConditionalStyles();
|
|
$conditionalStyles[] = $badBudget;
|
|
$excel->getActiveSheet()->getStyle('H' . $i)->setConditionalStyles($conditionalStyles);
|
|
|
|
$excel->getActiveSheet()->setTitle('Briefing & Training');
|
|
|
|
// Sheet
|
|
$excel->createSheet(4);
|
|
|
|
$excel->setActiveSheetIndex(4)
|
|
->mergeCells('A1:K1')
|
|
->setCellValue('A1', $lang['IMPLABudget'])
|
|
->getStyle('A1:K1')
|
|
->getAlignment()
|
|
->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
|
$excel->getActiveSheet()
|
|
->setCellValue('A3', $lang['FiscalYearStart'])
|
|
->setCellValue('B3', $fiscal_start->format('Y/m/d'))
|
|
->setCellValue('D3', $lang['FiscalYearEnd'])
|
|
->setCellValue('E3', $fiscal_end->format('Y/m/d'))
|
|
->setCellValue('G3', $lang['Cutoff'])
|
|
->setCellValue('H3', $fiscal_current->format('Y/m/d'));
|
|
|
|
$excel->getActiveSheet()
|
|
->setCellValue('A5', $lang['Type'])
|
|
->setCellValue('B5', $lang['ID'])
|
|
->setCellValue('C5', $lang['Description'])
|
|
->setCellValue('D5', $lang['Start'])
|
|
->setCellValue('E5', $lang['End'])
|
|
->setCellValue('F5', $lang['Actual'])
|
|
->setCellValue('G5', $lang['Pending'])
|
|
->setCellValue('H5', $lang['Total']);
|
|
|
|
$i = $start = 6;
|
|
foreach ($costobject as $key => $co) {
|
|
if (\strrpos($key, 'I', -\strlen($key)) !== false && isset($co[$fiscal_end->format('Y')]['value'])) {
|
|
$excel->getActiveSheet()
|
|
->setCellValue('A' . $i, '=MID(B' . $i . ', 1, 1)')
|
|
->setCellValue('B' . $i, $key)
|
|
->setCellValue('C' . $i, (isset($courseList[$key]) ? $courseList[$key][2] : ''))
|
|
->setCellValue('D' . $i, isset($courseList[$key][4]) ? $courseList[$key][4] : '')
|
|
->setCellValue('E' . $i, isset($courseList[$key][5]) ? $courseList[$key][5] : '')
|
|
->setCellValue('F' . $i, $co[$fiscal_end->format('Y')]['value'])
|
|
->setCellValue('G' . $i, 0.0)
|
|
->setCellValue('H' . $i, '=F' . $i . '+G' . $i);
|
|
|
|
++$i;
|
|
}
|
|
}
|
|
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':E' . $i)
|
|
->setCellValue('A' . $i, $lang['Total'])
|
|
->setCellValue('F' . $i, '=SUM(F' . $start . ':F' . ($i - 1) . ')')
|
|
->setCellValue('G' . $i, '=SUM(G' . $start . ':G' . ($i - 1) . ')')
|
|
->setCellValue('H' . $i, '=F' . $i . '+G' . $i);
|
|
|
|
++$i;
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':G' . $i)
|
|
->setCellValue('A' . $i, $lang['Forecast'])
|
|
->setCellValue('H' . $i, '=H' . ($i - 1) . '/(1+MOD(MONTH($H$3)-(MONTH($E$3)+1),12))*12');
|
|
|
|
++$i;
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':G' . $i)
|
|
->setCellValue('A' . $i, $lang['Budget'])
|
|
->setCellValue('H' . $i, '=' . $budget['I']);
|
|
|
|
++$i;
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':G' . $i)
|
|
->setCellValue('A' . $i, $lang['Remaining'])
|
|
->setCellValue('H' . $i, '=H' . ($i - 1) . '-H' . ($i - 3));
|
|
|
|
++$i;
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':G' . $i)
|
|
->setCellValue('A' . $i, $lang['RemainingForecast'])
|
|
->setCellValue('H' . $i, '=H' . ($i - 2) . '-H' . ($i - 3));
|
|
|
|
foreach (['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'] as $column) {
|
|
$excel->getActiveSheet()
|
|
->getColumnDimension($column)
|
|
->setAutoSize(true);
|
|
}
|
|
|
|
$excel->getActiveSheet()
|
|
->duplicateStyle($colored1Style, 'H' . $start . ':H' . ($i - 2))
|
|
->duplicateStyle($inputStyle, 'G' . $start . ':G' . ($i - 2))
|
|
->duplicateStyle($fixedStyle, 'B3')
|
|
->duplicateStyle($fixedStyle, 'E3')
|
|
->duplicateStyle($fixedStyle, 'H3')
|
|
->duplicateStyle($headStyle, 'A5:H5')
|
|
->duplicateStyle($totalStyle, 'A' . ($i - 4) . ':H' . $i);
|
|
|
|
$excel->getActiveSheet()
|
|
->getStyle('F6:H' . $i)
|
|
->getNumberFormat()
|
|
->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1);
|
|
|
|
$conditionalStyles = $excel->getActiveSheet()->getStyle('H' . $i)->getConditionalStyles();
|
|
$conditionalStyles[] = $badBudget;
|
|
$excel->getActiveSheet()->getStyle('H' . $i)->setConditionalStyles($conditionalStyles);
|
|
|
|
$excel->getActiveSheet()->setTitle('IMPLA');
|
|
|
|
// Sheet
|
|
$excel->createSheet(5);
|
|
|
|
$excel->setActiveSheetIndex(5)
|
|
->mergeCells('A1:K1')
|
|
->setCellValue('A1', $lang['MarketingSupportBudget'])
|
|
->getStyle('A1:K1')
|
|
->getAlignment()
|
|
->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
|
$excel->getActiveSheet()
|
|
->setCellValue('A3', $lang['FiscalYearStart'])
|
|
->setCellValue('B3', $fiscal_start->format('Y/m/d'))
|
|
->setCellValue('D3', $lang['FiscalYearEnd'])
|
|
->setCellValue('E3', $fiscal_end->format('Y/m/d'))
|
|
->setCellValue('G3', $lang['Cutoff'])
|
|
->setCellValue('H3', $fiscal_current->format('Y/m/d'));
|
|
|
|
$excel->getActiveSheet()
|
|
->setCellValue('A5', $lang['Type'])
|
|
->setCellValue('B5', $lang['ID'])
|
|
->setCellValue('C5', $lang['Description'])
|
|
->setCellValue('D5', $lang['Start'])
|
|
->setCellValue('E5', $lang['End'])
|
|
->setCellValue('F5', $lang['Actual'])
|
|
->setCellValue('G5', $lang['Pending'])
|
|
->setCellValue('H5', $lang['Total']);
|
|
|
|
$i = $start = 6;
|
|
foreach ($costobject as $key => $co) {
|
|
if (\strrpos($key, 'M', -\strlen($key)) !== false && isset($co[$fiscal_end->format('Y')]['value'])) {
|
|
$excel->getActiveSheet()
|
|
->setCellValue('A' . $i, '=MID(B' . $i . ', 1, 1)')
|
|
->setCellValue('B' . $i, $key)
|
|
->setCellValue('C' . $i, (isset($courseList[$key]) ? $courseList[$key][2] : ''))
|
|
->setCellValue('D' . $i, isset($courseList[$key][4]) ? $courseList[$key][4] : '')
|
|
->setCellValue('E' . $i, isset($courseList[$key][5]) ? $courseList[$key][5] : '')
|
|
->setCellValue('F' . $i, $co[$fiscal_end->format('Y')]['value'])
|
|
->setCellValue('G' . $i, 0.0)
|
|
->setCellValue('H' . $i, '=F' . $i . '+G' . $i);
|
|
|
|
++$i;
|
|
}
|
|
}
|
|
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':E' . $i)
|
|
->setCellValue('A' . $i, $lang['Total'])
|
|
->setCellValue('F' . $i, '=SUM(F' . $start . ':F' . ($i - 1) . ')')
|
|
->setCellValue('G' . $i, '=SUM(G' . $start . ':G' . ($i - 1) . ')')
|
|
->setCellValue('H' . $i, '=F' . $i . '+G' . $i);
|
|
|
|
++$i;
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':G' . $i)
|
|
->setCellValue('A' . $i, $lang['Forecast'])
|
|
->setCellValue('H' . $i, '=H' . ($i - 1) . '/(1+MOD(MONTH($H$3)-(MONTH($E$3)+1),12))*12');
|
|
|
|
++$i;
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':G' . $i)
|
|
->setCellValue('A' . $i, $lang['Budget'])
|
|
->setCellValue('H' . $i, '=' . $budget['M']);
|
|
|
|
++$i;
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':G' . $i)
|
|
->setCellValue('A' . $i, $lang['Remaining'])
|
|
->setCellValue('H' . $i, '=H' . ($i - 1) . '-H' . ($i - 3));
|
|
|
|
++$i;
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':G' . $i)
|
|
->setCellValue('A' . $i, $lang['RemainingForecast'])
|
|
->setCellValue('H' . $i, '=H' . ($i - 2) . '-H' . ($i - 3));
|
|
|
|
foreach (['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'] as $column) {
|
|
$excel->getActiveSheet()
|
|
->getColumnDimension($column)
|
|
->setAutoSize(true);
|
|
}
|
|
|
|
$excel->getActiveSheet()
|
|
->duplicateStyle($colored1Style, 'H' . $start . ':H' . ($i - 2))
|
|
->duplicateStyle($inputStyle, 'G' . $start . ':G' . ($i - 2))
|
|
->duplicateStyle($fixedStyle, 'B3')
|
|
->duplicateStyle($fixedStyle, 'E3')
|
|
->duplicateStyle($fixedStyle, 'H3')
|
|
->duplicateStyle($headStyle, 'A5:H5')
|
|
->duplicateStyle($totalStyle, 'A' . ($i - 4) . ':H' . $i);
|
|
|
|
$excel->getActiveSheet()
|
|
->getStyle('F6:H' . $i)
|
|
->getNumberFormat()
|
|
->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1);
|
|
|
|
$conditionalStyles = $excel->getActiveSheet()->getStyle('H' . $i)->getConditionalStyles();
|
|
$conditionalStyles[] = $badBudget;
|
|
$excel->getActiveSheet()->getStyle('H' . $i)->setConditionalStyles($conditionalStyles);
|
|
|
|
$excel->getActiveSheet()->setTitle('Marketing Support');
|
|
|
|
// Sheet
|
|
$excel->createSheet(6);
|
|
|
|
$excel->setActiveSheetIndex(6)
|
|
->mergeCells('A1:K1')
|
|
->setCellValue('A1', $lang['PromotionBudget'])
|
|
->getStyle('A1:K1')
|
|
->getAlignment()
|
|
->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
|
$excel->getActiveSheet()
|
|
->setCellValue('A3', $lang['FiscalYearStart'])
|
|
->setCellValue('B3', $fiscal_start->format('Y/m/d'))
|
|
->setCellValue('D3', $lang['FiscalYearEnd'])
|
|
->setCellValue('E3', $fiscal_end->format('Y/m/d'))
|
|
->setCellValue('G3', $lang['Cutoff'])
|
|
->setCellValue('H3', $fiscal_current->format('Y/m/d'));
|
|
|
|
$excel->getActiveSheet()
|
|
->setCellValue('A5', $lang['Type'])
|
|
->setCellValue('B5', $lang['ID'])
|
|
->setCellValue('C5', $lang['Description'])
|
|
->setCellValue('D5', $lang['Start'])
|
|
->setCellValue('E5', $lang['End'])
|
|
->setCellValue('F5', $lang['Actual'])
|
|
->setCellValue('G5', $lang['Pending'])
|
|
->setCellValue('H5', $lang['Total']);
|
|
|
|
$i = $start = 6;
|
|
foreach ($costobject as $key => $co) {
|
|
if (\strrpos($key, 'P', -\strlen($key)) !== false && isset($co[$fiscal_end->format('Y')]['value'])) {
|
|
$excel->getActiveSheet()
|
|
->setCellValue('A' . $i, '=MID(B' . $i . ', 1, 1)')
|
|
->setCellValue('B' . $i, $key)
|
|
->setCellValue('C' . $i, (isset($courseList[$key]) ? $courseList[$key][2] : ''))
|
|
->setCellValue('D' . $i, isset($courseList[$key][4]) ? $courseList[$key][4] : '')
|
|
->setCellValue('E' . $i, isset($courseList[$key][5]) ? $courseList[$key][5] : '')
|
|
->setCellValue('F' . $i, $co[$fiscal_end->format('Y')]['value'])
|
|
->setCellValue('G' . $i, 0.0)
|
|
->setCellValue('H' . $i, '=F' . $i . '+G' . $i);
|
|
|
|
++$i;
|
|
}
|
|
}
|
|
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':E' . $i)
|
|
->setCellValue('A' . $i, $lang['Total'])
|
|
->setCellValue('F' . $i, '=SUM(F' . $start . ':F' . ($i - 1) . ')')
|
|
->setCellValue('G' . $i, '=SUM(G' . $start . ':G' . ($i - 1) . ')')
|
|
->setCellValue('H' . $i, '=F' . $i . '+G' . $i);
|
|
|
|
++$i;
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':G' . $i)
|
|
->setCellValue('A' . $i, $lang['Forecast'])
|
|
->setCellValue('H' . $i, '=H' . ($i - 1) . '/(1+MOD(MONTH($H$3)-(MONTH($E$3)+1),12))*12');
|
|
|
|
++$i;
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':G' . $i)
|
|
->setCellValue('A' . $i, $lang['Budget'])
|
|
->setCellValue('H' . $i, '=' . $budget['P']);
|
|
|
|
++$i;
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':G' . $i)
|
|
->setCellValue('A' . $i, $lang['Remaining'])
|
|
->setCellValue('H' . $i, '=H' . ($i - 1) . '-H' . ($i - 3));
|
|
|
|
++$i;
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':G' . $i)
|
|
->setCellValue('A' . $i, $lang['RemainingForecast'])
|
|
->setCellValue('H' . $i, '=H' . ($i - 2) . '-H' . ($i - 3));
|
|
|
|
foreach (['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'] as $column) {
|
|
$excel->getActiveSheet()
|
|
->getColumnDimension($column)
|
|
->setAutoSize(true);
|
|
}
|
|
|
|
$excel->getActiveSheet()
|
|
->duplicateStyle($colored1Style, 'H' . $start . ':H' . ($i - 2))
|
|
->duplicateStyle($inputStyle, 'G' . $start . ':G' . ($i - 2))
|
|
->duplicateStyle($fixedStyle, 'B3')
|
|
->duplicateStyle($fixedStyle, 'E3')
|
|
->duplicateStyle($fixedStyle, 'H3')
|
|
->duplicateStyle($headStyle, 'A5:H5')
|
|
->duplicateStyle($totalStyle, 'A' . ($i - 4) . ':H' . $i);
|
|
|
|
$excel->getActiveSheet()
|
|
->getStyle('F6:H' . $i)
|
|
->getNumberFormat()
|
|
->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1);
|
|
|
|
$conditionalStyles = $excel->getActiveSheet()->getStyle('H' . $i)->getConditionalStyles();
|
|
$conditionalStyles[] = $badBudget;
|
|
$excel->getActiveSheet()->getStyle('H' . $i)->setConditionalStyles($conditionalStyles);
|
|
|
|
$excel->getActiveSheet()->setTitle('Promotion');
|
|
|
|
// Sheet
|
|
$excel->createSheet(7);
|
|
|
|
$excel->setActiveSheetIndex(7)
|
|
->mergeCells('A1:K1')
|
|
->setCellValue('A1', $lang['RoadshowBudget'])
|
|
->getStyle('A1:K1')
|
|
->getAlignment()
|
|
->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
|
$excel->getActiveSheet()
|
|
->setCellValue('A3', $lang['FiscalYearStart'])
|
|
->setCellValue('B3', $fiscal_start->format('Y/m/d'))
|
|
->setCellValue('D3', $lang['FiscalYearEnd'])
|
|
->setCellValue('E3', $fiscal_end->format('Y/m/d'))
|
|
->setCellValue('G3', $lang['Cutoff'])
|
|
->setCellValue('H3', $fiscal_current->format('Y/m/d'));
|
|
|
|
$excel->getActiveSheet()
|
|
->setCellValue('A5', $lang['Type'])
|
|
->setCellValue('B5', $lang['ID'])
|
|
->setCellValue('C5', $lang['Description'])
|
|
->setCellValue('D5', $lang['Start'])
|
|
->setCellValue('E5', $lang['End'])
|
|
->setCellValue('F5', $lang['Actual'])
|
|
->setCellValue('G5', $lang['Pending'])
|
|
->setCellValue('H5', $lang['Total']);
|
|
|
|
$i = $start = 6;
|
|
foreach ($costobject as $key => $co) {
|
|
if (\strrpos($key, 'S', -\strlen($key)) !== false && isset($co[$fiscal_end->format('Y')]['value'])) {
|
|
$excel->getActiveSheet()
|
|
->setCellValue('A' . $i, '=MID(B' . $i . ', 1, 1)')
|
|
->setCellValue('B' . $i, $key)
|
|
->setCellValue('C' . $i, (isset($courseList[$key]) ? $courseList[$key][2] : ''))
|
|
->setCellValue('D' . $i, isset($courseList[$key][4]) ? $courseList[$key][4] : '')
|
|
->setCellValue('E' . $i, isset($courseList[$key][5]) ? $courseList[$key][5] : '')
|
|
->setCellValue('F' . $i, $co[$fiscal_end->format('Y')]['value'])
|
|
->setCellValue('G' . $i, 0.0)
|
|
->setCellValue('H' . $i, '=F' . $i . '+G' . $i);
|
|
|
|
++$i;
|
|
}
|
|
}
|
|
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':E' . $i)
|
|
->setCellValue('A' . $i, $lang['Total'])
|
|
->setCellValue('F' . $i, '=SUM(F' . $start . ':F' . ($i - 1) . ')')
|
|
->setCellValue('G' . $i, '=SUM(G' . $start . ':G' . ($i - 1) . ')')
|
|
->setCellValue('H' . $i, '=F' . $i . '+G' . $i);
|
|
|
|
++$i;
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':G' . $i)
|
|
->setCellValue('A' . $i, $lang['Forecast'])
|
|
->setCellValue('H' . $i, '=H' . ($i - 1) . '/(1+MOD(MONTH($H$3)-(MONTH($E$3)+1),12))*12');
|
|
|
|
++$i;
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':G' . $i)
|
|
->setCellValue('A' . $i, $lang['Budget'])
|
|
->setCellValue('H' . $i, '=' . $budget['S']);
|
|
|
|
++$i;
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':G' . $i)
|
|
->setCellValue('A' . $i, $lang['Remaining'])
|
|
->setCellValue('H' . $i, '=H' . ($i - 1) . '-H' . ($i - 3));
|
|
|
|
++$i;
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':G' . $i)
|
|
->setCellValue('A' . $i, $lang['RemainingForecast'])
|
|
->setCellValue('H' . $i, '=H' . ($i - 2) . '-H' . ($i - 3));
|
|
|
|
foreach (['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'] as $column) {
|
|
$excel->getActiveSheet()
|
|
->getColumnDimension($column)
|
|
->setAutoSize(true);
|
|
}
|
|
|
|
$excel->getActiveSheet()
|
|
->duplicateStyle($colored1Style, 'H' . $start . ':H' . ($i - 2))
|
|
->duplicateStyle($inputStyle, 'G' . $start . ':G' . ($i - 2))
|
|
->duplicateStyle($fixedStyle, 'B3')
|
|
->duplicateStyle($fixedStyle, 'E3')
|
|
->duplicateStyle($fixedStyle, 'H3')
|
|
->duplicateStyle($headStyle, 'A5:H5')
|
|
->duplicateStyle($totalStyle, 'A' . ($i - 4) . ':H' . $i);
|
|
|
|
$excel->getActiveSheet()
|
|
->getStyle('F6:H' . $i)
|
|
->getNumberFormat()
|
|
->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1);
|
|
|
|
$conditionalStyles = $excel->getActiveSheet()->getStyle('H' . $i)->getConditionalStyles();
|
|
$conditionalStyles[] = $badBudget;
|
|
$excel->getActiveSheet()->getStyle('H' . $i)->setConditionalStyles($conditionalStyles);
|
|
|
|
$excel->getActiveSheet()->setTitle('Roadshow');
|
|
|
|
// Sheet
|
|
$excel->createSheet(8);
|
|
|
|
$excel->setActiveSheetIndex(8)
|
|
->mergeCells('A1:K1')
|
|
->setCellValue('A1', $lang['AdditionalSupportBudget'])
|
|
->getStyle('A1:K1')
|
|
->getAlignment()
|
|
->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
|
$excel->getActiveSheet()
|
|
->setCellValue('A3', $lang['FiscalYearStart'])
|
|
->setCellValue('B3', $fiscal_start->format('Y/m/d'))
|
|
->setCellValue('D3', $lang['FiscalYearEnd'])
|
|
->setCellValue('E3', $fiscal_end->format('Y/m/d'))
|
|
->setCellValue('G3', $lang['Cutoff'])
|
|
->setCellValue('H3', $fiscal_current->format('Y/m/d'));
|
|
|
|
$excel->getActiveSheet()
|
|
->setCellValue('A5', $lang['Type'])
|
|
->setCellValue('B5', $lang['ID'])
|
|
->setCellValue('C5', $lang['Description'])
|
|
->setCellValue('D5', $lang['Start'])
|
|
->setCellValue('E5', $lang['End'])
|
|
->setCellValue('F5', $lang['Actual'])
|
|
->setCellValue('G5', $lang['Pending'])
|
|
->setCellValue('H5', $lang['Total']);
|
|
|
|
$i = $start = 6;
|
|
foreach ($costobject as $key => $co) {
|
|
if (\strrpos($key, 'U', -\strlen($key)) !== false && isset($co[$fiscal_end->format('Y')]['value'])) {
|
|
$excel->getActiveSheet()
|
|
->setCellValue('A' . $i, '=MID(B' . $i . ', 1, 1)')
|
|
->setCellValue('B' . $i, $key)
|
|
->setCellValue('C' . $i, (isset($courseList[$key]) ? $courseList[$key][2] : ''))
|
|
->setCellValue('D' . $i, isset($courseList[$key][4]) ? $courseList[$key][4] : '')
|
|
->setCellValue('E' . $i, isset($courseList[$key][5]) ? $courseList[$key][5] : '')
|
|
->setCellValue('F' . $i, $co[$fiscal_end->format('Y')]['value'])
|
|
->setCellValue('G' . $i, 0.0)
|
|
->setCellValue('H' . $i, '=F' . $i . '+G' . $i);
|
|
|
|
++$i;
|
|
}
|
|
}
|
|
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':E' . $i)
|
|
->setCellValue('A' . $i, $lang['Total'])
|
|
->setCellValue('F' . $i, '=SUM(F' . $start . ':F' . ($i - 1) . ')')
|
|
->setCellValue('G' . $i, '=SUM(G' . $start . ':G' . ($i - 1) . ')')
|
|
->setCellValue('H' . $i, '=F' . $i . '+G' . $i);
|
|
|
|
++$i;
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':G' . $i)
|
|
->setCellValue('A' . $i, $lang['Forecast'])
|
|
->setCellValue('H' . $i, '=H' . ($i - 1) . '/(1+MOD(MONTH($H$3)-(MONTH($E$3)+1),12))*12');
|
|
|
|
++$i;
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':G' . $i)
|
|
->setCellValue('A' . $i, $lang['Budget'])
|
|
->setCellValue('H' . $i, '=' . $budget['U']);
|
|
|
|
++$i;
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':G' . $i)
|
|
->setCellValue('A' . $i, $lang['Remaining'])
|
|
->setCellValue('H' . $i, '=H' . ($i - 1) . '-H' . ($i - 3));
|
|
|
|
++$i;
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':G' . $i)
|
|
->setCellValue('A' . $i, $lang['RemainingForecast'])
|
|
->setCellValue('H' . $i, '=H' . ($i - 2) . '-H' . ($i - 3));
|
|
|
|
foreach (['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'] as $column) {
|
|
$excel->getActiveSheet()
|
|
->getColumnDimension($column)
|
|
->setAutoSize(true);
|
|
}
|
|
|
|
$excel->getActiveSheet()
|
|
->duplicateStyle($colored1Style, 'H' . $start . ':H' . ($i - 2))
|
|
->duplicateStyle($inputStyle, 'G' . $start . ':G' . ($i - 2))
|
|
->duplicateStyle($fixedStyle, 'B3')
|
|
->duplicateStyle($fixedStyle, 'E3')
|
|
->duplicateStyle($fixedStyle, 'H3')
|
|
->duplicateStyle($headStyle, 'A5:H5')
|
|
->duplicateStyle($totalStyle, 'A' . ($i - 4) . ':H' . $i);
|
|
|
|
$excel->getActiveSheet()
|
|
->getStyle('F6:H' . $i)
|
|
->getNumberFormat()
|
|
->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1);
|
|
|
|
$conditionalStyles = $excel->getActiveSheet()->getStyle('H' . $i)->getConditionalStyles();
|
|
$conditionalStyles[] = $badBudget;
|
|
$excel->getActiveSheet()->getStyle('H' . $i)->setConditionalStyles($conditionalStyles);
|
|
|
|
$excel->getActiveSheet()->setTitle('Additional Support');
|
|
|
|
// Sheet
|
|
$excel->createSheet(9);
|
|
|
|
$excel->setActiveSheetIndex(9)
|
|
->mergeCells('A1:K1')
|
|
->setCellValue('A1', $lang['ExportCourseBudget'])
|
|
->getStyle('A1:K1')
|
|
->getAlignment()
|
|
->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
|
$excel->getActiveSheet()
|
|
->setCellValue('A3', $lang['FiscalYearStart'])
|
|
->setCellValue('B3', $fiscal_start->format('Y/m/d'))
|
|
->setCellValue('D3', $lang['FiscalYearEnd'])
|
|
->setCellValue('E3', $fiscal_end->format('Y/m/d'))
|
|
->setCellValue('G3', $lang['Cutoff'])
|
|
->setCellValue('H3', $fiscal_current->format('Y/m/d'));
|
|
|
|
$excel->getActiveSheet()
|
|
->setCellValue('A5', $lang['Type'])
|
|
->setCellValue('B5', $lang['ID'])
|
|
->setCellValue('C5', $lang['Description'])
|
|
->setCellValue('D5', $lang['Start'])
|
|
->setCellValue('E5', $lang['End'])
|
|
->setCellValue('F5', $lang['Actual'])
|
|
->setCellValue('G5', $lang['Pending'])
|
|
->setCellValue('H5', $lang['Total']);
|
|
|
|
$i = $start = 6;
|
|
foreach ($costobject as $key => $co) {
|
|
if ((\strrpos($key, 'A', -\strlen($key)) !== false || $key === '') && isset($co[$fiscal_end->format('Y')]['value'])) {
|
|
$excel->getActiveSheet()
|
|
->setCellValue('A' . $i, '=MID(B' . $i . ', 1, 1)')
|
|
->setCellValue('B' . $i, $key)
|
|
->setCellValue('C' . $i, (isset($courseList[$key]) ? $courseList[$key][2] : ''))
|
|
->setCellValue('D' . $i, isset($courseList[$key][4]) ? $courseList[$key][4] : '')
|
|
->setCellValue('E' . $i, isset($courseList[$key][5]) ? $courseList[$key][5] : '')
|
|
->setCellValue('F' . $i, $co[$fiscal_end->format('Y')]['value'])
|
|
->setCellValue('G' . $i, 0.0)
|
|
->setCellValue('H' . $i, '=F' . $i . '+G' . $i);
|
|
|
|
++$i;
|
|
}
|
|
}
|
|
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':E' . $i)
|
|
->setCellValue('A' . $i, $lang['Total'])
|
|
->setCellValue('F' . $i, '=SUM(F' . $start . ':F' . ($i - 1) . ')')
|
|
->setCellValue('G' . $i, '=SUM(G' . $start . ':G' . ($i - 1) . ')')
|
|
->setCellValue('H' . $i, '=F' . $i . '+G' . $i);
|
|
|
|
++$i;
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':G' . $i)
|
|
->setCellValue('A' . $i, $lang['Forecast'])
|
|
->setCellValue('H' . $i, '=H' . ($i - 1) . '/(1+MOD(MONTH($H$3)-(MONTH($E$3)+1),12))*12');
|
|
|
|
++$i;
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':G' . $i)
|
|
->setCellValue('A' . $i, $lang['Budget'])
|
|
->setCellValue('H' . $i, '=' . $budget['A']);
|
|
|
|
++$i;
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':G' . $i)
|
|
->setCellValue('A' . $i, $lang['Remaining'])
|
|
->setCellValue('H' . $i, '=H' . ($i - 1) . '-H' . ($i - 3));
|
|
|
|
++$i;
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':G' . $i)
|
|
->setCellValue('A' . $i, $lang['RemainingForecast'])
|
|
->setCellValue('H' . $i, '=H' . ($i - 2) . '-H' . ($i - 3));
|
|
|
|
foreach (['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'] as $column) {
|
|
$excel->getActiveSheet()
|
|
->getColumnDimension($column)
|
|
->setAutoSize(true);
|
|
}
|
|
|
|
$excel->getActiveSheet()
|
|
->duplicateStyle($colored1Style, 'H' . $start . ':H' . ($i - 2))
|
|
->duplicateStyle($inputStyle, 'G' . $start . ':G' . ($i - 2))
|
|
->duplicateStyle($fixedStyle, 'B3')
|
|
->duplicateStyle($fixedStyle, 'E3')
|
|
->duplicateStyle($fixedStyle, 'H3')
|
|
->duplicateStyle($headStyle, 'A5:H5')
|
|
->duplicateStyle($totalStyle, 'A' . ($i - 4) . ':H' . $i);
|
|
|
|
$excel->getActiveSheet()
|
|
->getStyle('F6:H' . $i)
|
|
->getNumberFormat()
|
|
->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1);
|
|
|
|
$conditionalStyles = $excel->getActiveSheet()->getStyle('H' . $i)->getConditionalStyles();
|
|
$conditionalStyles[] = $badBudget;
|
|
$excel->getActiveSheet()->getStyle('H' . $i)->setConditionalStyles($conditionalStyles);
|
|
|
|
$excel->getActiveSheet()->setTitle('Export Courses');
|
|
|
|
// Sheet
|
|
$excel->createSheet(10);
|
|
|
|
$excel->setActiveSheetIndex(10)
|
|
->mergeCells('A1:K1')
|
|
->setCellValue('A1', $lang['CourseBudget'])
|
|
->getStyle('A1:K1')
|
|
->getAlignment()
|
|
->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
|
$excel->getActiveSheet()
|
|
->setCellValue('A3', $lang['FiscalYearStart'])
|
|
->setCellValue('B3', $fiscal_start->format('Y/m/d'))
|
|
->setCellValue('D3', $lang['FiscalYearEnd'])
|
|
->setCellValue('E3', $fiscal_end->format('Y/m/d'))
|
|
->setCellValue('G3', $lang['Cutoff'])
|
|
->setCellValue('H3', $fiscal_current->format('Y/m/d'));
|
|
|
|
$excel->getActiveSheet()
|
|
->setCellValue('A5', $lang['Type'])
|
|
->setCellValue('B5', $lang['ID'])
|
|
->setCellValue('C5', $lang['Description'])
|
|
->setCellValue('D5', $lang['Start'])
|
|
->setCellValue('E5', $lang['End'])
|
|
->setCellValue('F5', $lang['Actual'])
|
|
->setCellValue('G5', $lang['Pending'])
|
|
->setCellValue('H5', $lang['Total']);
|
|
|
|
$i = $start = 6;
|
|
foreach ($costobject as $key => $co) {
|
|
if ((\strrpos($key, 'K', -\strlen($key)) !== false || \strrpos($key, 'V', -\strlen($key)) !== false || \strrpos($key, 'R', -\strlen($key)) !== false) && isset($co[$fiscal_end->format('Y')]['value'])) {
|
|
$excel->getActiveSheet()
|
|
->setCellValue('A' . $i, '=MID(B' . $i . ', 1, 1)')
|
|
->setCellValue('B' . $i, $key)
|
|
->setCellValue('C' . $i, (isset($courseList[$key]) ? $courseList[$key][2] : ''))
|
|
->setCellValue('D' . $i, isset($courseList[$key][4]) ? $courseList[$key][4] : '')
|
|
->setCellValue('E' . $i, isset($courseList[$key][5]) ? $courseList[$key][5] : '')
|
|
->setCellValue('F' . $i, $co[$fiscal_end->format('Y')]['value'])
|
|
->setCellValue('G' . $i, 0.0)
|
|
->setCellValue('H' . $i, '=F' . $i . '+G' . $i);
|
|
|
|
++$i;
|
|
}
|
|
}
|
|
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':E' . $i)
|
|
->setCellValue('A' . $i, $lang['Total'])
|
|
->setCellValue('F' . $i, '=SUM(F' . $start . ':F' . ($i - 1) . ')')
|
|
->setCellValue('G' . $i, '=SUM(G' . $start . ':G' . ($i - 1) . ')')
|
|
->setCellValue('H' . $i, '=F' . $i . '+G' . $i);
|
|
|
|
++$i;
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':G' . $i)
|
|
->setCellValue('A' . $i, $lang['Forecast'])
|
|
->setCellValue('H' . $i, '=H' . ($i - 1) . '/(1+MOD(MONTH($H$3)-(MONTH($E$3)+1),12))*12');
|
|
|
|
++$i;
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':G' . $i)
|
|
->setCellValue('A' . $i, $lang['Budget'])
|
|
->setCellValue('H' . $i, '=' . ($budget['K'] + $budget['R'] + $budget['V']));
|
|
|
|
++$i;
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':G' . $i)
|
|
->setCellValue('A' . $i, $lang['Remaining'])
|
|
->setCellValue('H' . $i, '=H' . ($i - 1) . '-H' . ($i - 3));
|
|
|
|
++$i;
|
|
$excel->getActiveSheet()
|
|
->mergeCells('A' . $i . ':G' . $i)
|
|
->setCellValue('A' . $i, $lang['RemainingForecast'])
|
|
->setCellValue('H' . $i, '=H' . ($i - 2) . '-H' . ($i - 3));
|
|
|
|
foreach (['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'] as $column) {
|
|
$excel->getActiveSheet()
|
|
->getColumnDimension($column)
|
|
->setAutoSize(true);
|
|
}
|
|
|
|
$excel->getActiveSheet()
|
|
->duplicateStyle($colored1Style, 'H' . $start . ':H' . ($i - 2))
|
|
->duplicateStyle($inputStyle, 'G' . $start . ':G' . ($i - 2))
|
|
->duplicateStyle($fixedStyle, 'B3')
|
|
->duplicateStyle($fixedStyle, 'E3')
|
|
->duplicateStyle($fixedStyle, 'H3')
|
|
->duplicateStyle($headStyle, 'A5:H5')
|
|
->duplicateStyle($totalStyle, 'A' . ($i - 4) . ':H' . $i);
|
|
|
|
$excel->getActiveSheet()
|
|
->getStyle('F6:H' . $i)
|
|
->getNumberFormat()
|
|
->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1);
|
|
|
|
$conditionalStyles = $excel->getActiveSheet()->getStyle('H' . $i)->getConditionalStyles();
|
|
$conditionalStyles[] = $badBudget;
|
|
$excel->getActiveSheet()->getStyle('H' . $i)->setConditionalStyles($conditionalStyles);
|
|
|
|
$excel->getActiveSheet()->setTitle('Events & Courses');
|
|
|
|
// Set active sheet index to the first sheet, so Excel opens this as the first sheet
|
|
$excel->setActiveSheetIndex(0);
|
|
|
|
$objWriter = PHPExcel_IOFactory::createWriter($excel, 'Excel2007');
|
|
$objWriter->save('php://output');
|