示例#1
0
     //$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);