$n) { $e = ( array ) $n; $new[] = str_replace("{no}",$start+$key, $e[$name]); } return $new; } public function do(){ $templateFile = SETUP_PATH.'/excel/ekuitas.xlsx';; $fileName = SETUP_PATH.'excel/ekuitas.xlsx'; define('SPECIAL_ARRAY_TYPE', CellSetterArrayValueSpecial::class); $qr = " SELECT '={no}' no, main,nama_main, dk, rek,nama,sum(total) total FROM ( SELECT main,nama_main, dk, rekkredit rek, nama, sum(if(dk = 'D', kredit*-1,kredit)) total FROM lap_bb LEFT JOIN acc ON acc.kode = lap_bb.rekkredit WHERE lap_bb.tgl <= \"2023-10-31\" GROUP BY rekkredit UNION ALL SELECT main,nama_main, dk, rekdebit rek, nama, sum(if(dk <> 'D', debit *-1,debit)) total FROM lap_bb LEFT JOIN acc ON acc.kode = lap_bb.rekdebit WHERE lap_bb.tgl <= \"2023-10-31\" GROUP BY rekdebit ) a GROUP BY rek HAVING main IS NOT NULL "; $data = DB::query_result_object($qr); $dataParse = []; $newPar = new Param(); $dataParse['no'] = (new self)->toArray2($data, "no"); $newPar->add('no', $dataParse); $params = $newPar->get(); $spreadsheet = IOFactory::load($templateFile); $templateVarsArr = $spreadsheet->getActiveSheet()->toArray(); $callbacks = []; $events = []; $sheet1 = $spreadsheet->getSheetByName('neraca'); PhpExcelTemplator::renderWorksheet($sheet1, $templateVarsArr, $params, $callbacks, $events); // var_dump($templateVarsArr); // PhpExcelTemplator::saveSpreadsheetToFile($spreadsheet, $fileName); PhpExcelTemplator::outputSpreadsheetToFile($spreadsheet, $fileName); // to download the file from web page } }