setPHPExcel($pPHPExcel); $writerPartsArray = array( 'content' => 'PHPExcel_Writer_OpenDocument_Content', 'meta' => 'PHPExcel_Writer_OpenDocument_Meta', 'meta_inf' => 'PHPExcel_Writer_OpenDocument_MetaInf', 'mimetype' => 'PHPExcel_Writer_OpenDocument_Mimetype', 'settings' => 'PHPExcel_Writer_OpenDocument_Settings', 'styles' => 'PHPExcel_Writer_OpenDocument_Styles', 'thumbnails' => 'PHPExcel_Writer_OpenDocument_Thumbnails' ); foreach ($writerPartsArray as $writer => $class) { $this->writerParts[$writer] = new $class($this); } } /** * Get writer part * * @param string $pPartName Writer part name * @return PHPExcel_Writer_Excel2007_WriterPart */ public function getWriterPart($pPartName = '') { if ($pPartName != '' && isset($this->writerParts[strtolower($pPartName)])) { return $this->writerParts[strtolower($pPartName)]; } else { return null; } } /** * Save PHPExcel to file * * @param string $pFilename * @throws PHPExcel_Writer_Exception */ public function save($pFilename = null) { if (!$this->spreadSheet) { throw new PHPExcel_Writer_Exception('PHPExcel object unassigned.'); } // garbage collect $this->spreadSheet->garbageCollect(); // If $pFilename is php://output or php://stdout, make it a temporary file... $originalFilename = $pFilename; if (strtolower($pFilename) == 'php://output' || strtolower($pFilename) == 'php://stdout') { $pFilename = @tempnam(PHPExcel_Shared_File::sys_get_temp_dir(), 'phpxltmp'); if ($pFilename == '') { $pFilename = $originalFilename; } } $objZip = $this->createZip($pFilename); $objZip->addFromString('META-INF/manifest.xml',