示例#1
0
     header("Cache-control:", true);
     $sFields = implode(',', $aFields);
     $oP->add_style('table br {mso-data-placement:same-cell;}');
     // Trick for Excel: keep line breaks inside the same cell !
     cmdbAbstractObject::DisplaySetAsHTMLSpreadsheet($oP, $oSet, array('fields' => $sFields, 'fields_advanced' => $bFieldsAdvanced, 'localize_values' => $bLocalize));
     break;
 case 'xml':
     $oP = new XMLPage("iTop - Export", true);
     cmdbAbstractObject::DisplaySetAsXML($oP, $oSet, array('localize_values' => $bLocalize));
     break;
 case 'xlsx':
     $oP = new ajax_page('');
     $oExporter = new ExcelExporter();
     $oExporter->SetObjectList($oFilter);
     // Run the export by chunk of 1000 objects to limit memory usage
     $oExporter->SetChunkSize(1000);
     do {
         $aStatus = $oExporter->Run();
         // process one chunk
     } while ($aStatus['code'] != 'done' && $aStatus['code'] != 'error');
     if ($aStatus['code'] == 'done') {
         $oP->SetContentType('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
         $oP->SetContentDisposition('attachment', $oFilter->GetClass() . '.xlsx');
         $oP->add(file_get_contents($oExporter->GetExcelFilePath()));
         $oExporter->Cleanup();
     } else {
         $oP->add('Error, xlsx export failed: ' . $aStatus['message']);
     }
     break;
 default:
     $oP = new WebPage("iTop - Export");