//$oExcelExporter->SetChunkSize(10); //Only for testing $oExcelExporter->SetAdvancedMode($bAdvanced); $sToken = $oExcelExporter->SaveState(); $oPage->add(json_encode(array('status' => 'ok', 'token' => $sToken))); break; case 'xlsx_run': $sMemoryLimit = MetaModel::GetConfig()->Get('xlsx_exporter_memory_limit'); ini_set('memory_limit', $sMemoryLimit); ini_set('max_execution_time', max(300, ini_get('max_execution_time'))); // At least 5 minutes $sToken = utils::ReadParam('token', '', false, 'raw_data'); $oExcelExporter = new ExcelExporter($sToken); $aStatus = $oExcelExporter->Run(); $aResults = array('status' => $aStatus['code'], 'percentage' => $aStatus['percentage'], 'message' => $aStatus['message']); if ($aStatus['code'] == 'done') { $aResults['statistics'] = $oExcelExporter->GetStatistics('html'); } $oPage->add(json_encode($aResults)); break; case 'xlsx_download': $sToken = utils::ReadParam('token', '', false, 'raw_data'); $oPage->SetContentType('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); $oPage->SetContentDisposition('attachment', 'export.xlsx'); $sFileContent = ExcelExporter::GetExcelFileFromToken($sToken); $oPage->add($sFileContent); ExcelExporter::CleanupFromToken($sToken); break; case 'xlsx_abort': // Stop & cleanup an export... $sToken = utils::ReadParam('token', '', false, 'raw_data'); ExcelExporter::CleanupFromToken($sToken);