outputFile !== '') { unlink($this->outputFile); $this->outputFile = ''; } } public function testWithoutExplicitStyle0(): void { $spreadsheet = new Spreadsheet(); $defaultStyle = $spreadsheet->getDefaultStyle(); $defaultStyle->getFont()->setBold(true); $defaultStyle->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER); $sheet = $spreadsheet->getActiveSheet(); $sheet->getCell('A1')->setValue('bold'); $sheet->getCell('A2')->setValue('italic'); $sheet->getStyle('A2')->getFont()->setItalic(true); $writer = new XlsxWriter($spreadsheet); $this->outputFile = File::temporaryFilename(); $writer->save($this->outputFile); $spreadsheet->disconnectWorksheets(); $reader = new XlsxReader(); $spreadsheet2 = $reader->load($this->outputFile); $sheet2 = $spreadsheet2->getActiveSheet(); self::assertTrue($sheet2->getStyle('A1')->getFont()->getBold()); self::assertFalse($sheet2->getStyle('A1')->getFont()->getItalic()); self::assertSame(Alignment::HORIZONTAL_CENTER, $sheet2->getStyle('A1')->getAlignment()->getHorizontal()); self::assertTrue($sheet2->getStyle('A2')->getFont()->getBold()); self::assertTrue($sheet2->getStyle('A2')->getFont()->getItalic()); self::assertSame(Alignment::HORIZONTAL_CENTER, $sheet2->getStyle('A2')->getAlignment()->getHorizontal()); $spreadsheet2->disconnectWorksheets(); $file = 'zip://'; $file .= $this->outputFile; $file .= '#xl/worksheets/sheet1.xml'; $data = file_get_contents($file); if ($data === false) { self::fail('Unable to read file'); } else { self::assertStringContainsString('0', $data, 'no s attribute in c tag'); self::assertStringContainsString('1', $data); } } public function testWithExplicitStyle0(): void { $spreadsheet = new Spreadsheet(); $defaultStyle = $spreadsheet->getDefaultStyle(); $defaultStyle->getFont()->setBold(true); $defaultStyle->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER); $sheet = $spreadsheet->getActiveSheet(); $sheet->getCell('A1')->setValue('bold'); $sheet->getCell('A2')->setValue('italic'); $sheet->getStyle('A2')->getFont()->setItalic(true); $writer = new XlsxWriter($spreadsheet); $writer->setExplicitStyle0(true); $this->outputFile = File::temporaryFilename(); $writer->save($this->outputFile); $spreadsheet->disconnectWorksheets(); $reader = new XlsxReader(); $spreadsheet2 = $reader->load($this->outputFile); $sheet2 = $spreadsheet2->getActiveSheet(); self::assertTrue($sheet2->getStyle('A1')->getFont()->getBold()); self::assertFalse($sheet2->getStyle('A1')->getFont()->getItalic()); self::assertSame(Alignment::HORIZONTAL_CENTER, $sheet2->getStyle('A1')->getAlignment()->getHorizontal()); self::assertTrue($sheet2->getStyle('A2')->getFont()->getBold()); self::assertTrue($sheet2->getStyle('A2')->getFont()->getItalic()); self::assertSame(Alignment::HORIZONTAL_CENTER, $sheet2->getStyle('A2')->getAlignment()->getHorizontal()); $spreadsheet2->disconnectWorksheets(); $file = 'zip://'; $file .= $this->outputFile; $file .= '#xl/worksheets/sheet1.xml'; $data = file_get_contents($file); if ($data === false) { self::fail('Unable to read file'); } else { self::assertStringContainsString('0', $data, 'has s attribute in c tag'); self::assertStringContainsString('1', $data); } } }