示例#1
0
         $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");
         $oP->add("Unsupported format '{$sFormat}'. Possible values are: html, csv, spreadsheet or xml.");
 }