outputFile !== '') { unlink($this->outputFile); $this->outputFile = ''; } } private function getMetadata(): string { $zipfile = "zip://{$this->outputFile}#xl/metadata.xml"; return (string) @file_get_contents($zipfile); } public function testNoArrayNoPixInCell(): void { $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); $sheet->setCellValue('A1', 'Hello World!'); $writer = new XlsxWriter($spreadsheet); $this->outputFile = File::temporaryFilename(); $writer->save($this->outputFile); $contents = $this->getMetadata(); self::assertSame('', $contents); } public function testArrayNoPixInCell(): void { $spreadsheet = new Spreadsheet(); $spreadsheet->returnArrayAsArray(); $sheet = $spreadsheet->getActiveSheet(); $sheet->setCellValue('A1', 1); $sheet->setCellValue('A2', 5); $sheet->setCellValue('A3', -1); $sheet->setCellValue('A4', 15); $sheet->setCellValue('A5', 20); $sheet->setCellValue('C1', '=SORT(A1:A5)'); $writer = new XlsxWriter($spreadsheet); $this->outputFile = File::temporaryFilename(); $writer->save($this->outputFile); $contents = $this->getMetadata(); $expectedArray = [ 'xmlns:xda', '', '', '', '', '', ]; foreach ($expectedArray as $expected) { self::assertStringContainsString($expected, $contents); } } public function testArrayPixInCell(): void { $spreadsheet = new Spreadsheet(); $spreadsheet->returnArrayAsArray(); $sheet = $spreadsheet->getActiveSheet(); $sheet->fromArray([ [1], [9], [-1], [15], ]); $sheet->setCellValue('H1', '=SORT(A1:A4)'); $objDrawing = new Drawing(); $directory = 'tests/data/Writer/XLSX'; $objDrawing->setPath($directory . '/blue_square.png'); $sheet->getCell('C2')->setValue($objDrawing); $objDrawing2 = new Drawing(); $objDrawing2->setPath($directory . '/red_square.jpeg'); $sheet->getCell('C5')->setValue($objDrawing2); $writer = new XlsxWriter($spreadsheet); $this->outputFile = File::temporaryFilename(); $writer->save($this->outputFile); $contents = $this->getMetadata(); //echo $contents; $expectedArray = [ 'xmlns:xda', '', '', '', '', '', ]; foreach ($expectedArray as $expected) { self::assertStringContainsString($expected, $contents); } //self::assertTrue(true); } public function testNoArrayPixInCell(): void { $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); $objDrawing = new Drawing(); $directory = 'tests/data/Writer/XLSX'; $objDrawing->setPath($directory . '/blue_square.png'); $sheet->getCell('C2')->setValue($objDrawing); $objDrawing2 = new Drawing(); $objDrawing2->setPath($directory . '/red_square.jpeg'); $sheet->getCell('C5')->setValue($objDrawing2); $writer = new XlsxWriter($spreadsheet); $this->outputFile = File::temporaryFilename(); $writer->save($this->outputFile); $contents = $this->getMetadata(); $unexpectedArray = [ 'xmlns:xda', '', '', '', ]; foreach ($expectedArray as $expected) { self::assertStringContainsString($expected, $contents); } foreach ($unexpectedArray as $unexpected) { self::assertStringNotContainsString($unexpected, $contents); } } }