|
3 | 3 | namespace PhpOffice\PhpSpreadsheetTests\Reader\Xls; |
4 | 4 |
|
5 | 5 | use PhpOffice\PhpSpreadsheet\Reader\Xls; |
| 6 | +use PhpOffice\PhpSpreadsheet\Style\Border; |
6 | 7 | use PhpOffice\PhpSpreadsheet\Style\Conditional; |
7 | 8 | use PHPUnit\Framework\TestCase; |
8 | 9 |
|
@@ -146,4 +147,59 @@ public function conditionalFormattingProvider(): array |
146 | 147 | ], |
147 | 148 | ]; |
148 | 149 | } |
| 150 | + |
| 151 | + public function testReadConditionalFormattingStyles(): void |
| 152 | + { |
| 153 | + $filename = 'tests/data/Reader/XLS/CF_Basic_Comparisons.xls'; |
| 154 | + $reader = new Xls(); |
| 155 | + $spreadsheet = $reader->load($filename); |
| 156 | + $sheet = $spreadsheet->getActiveSheet(); |
| 157 | + $expectedRange = 'A2:E5'; |
| 158 | + $hasConditionalStyles = $sheet->conditionalStylesExists($expectedRange); |
| 159 | + self::assertTrue($hasConditionalStyles); |
| 160 | + |
| 161 | + $conditionalStyles = $sheet->getConditionalStyles($expectedRange); |
| 162 | + self::assertCount(3, $conditionalStyles); |
| 163 | + |
| 164 | + $style = $conditionalStyles[0]->getStyle(); |
| 165 | + $font = $style->getFont(); |
| 166 | + self::assertSame('FF0000FF', $font->getColor()->getArgb()); |
| 167 | + self::assertNull($font->getItalic()); |
| 168 | + self::assertNull($font->getStrikethrough()); |
| 169 | + // Fill not handled correctly - forget for now |
| 170 | + $borders = $style->getBorders(); |
| 171 | + self::assertSame(Border::BORDER_OMIT, $borders->getLeft()->getBorderStyle()); |
| 172 | + self::assertSame(Border::BORDER_OMIT, $borders->getRight()->getBorderStyle()); |
| 173 | + self::assertSame(Border::BORDER_OMIT, $borders->getTop()->getBorderStyle()); |
| 174 | + self::assertSame(Border::BORDER_OMIT, $borders->getBottom()->getBorderStyle()); |
| 175 | + self::assertNull($style->getNumberFormat()->getFormatCode()); |
| 176 | + |
| 177 | + $style = $conditionalStyles[1]->getStyle(); |
| 178 | + $font = $style->getFont(); |
| 179 | + self::assertSame('FF800000', $font->getColor()->getArgb()); |
| 180 | + self::assertNull($font->getItalic()); |
| 181 | + self::assertNull($font->getStrikethrough()); |
| 182 | + // Fill not handled correctly - forget for now |
| 183 | + $borders = $style->getBorders(); |
| 184 | + self::assertSame(Border::BORDER_OMIT, $borders->getLeft()->getBorderStyle()); |
| 185 | + self::assertSame(Border::BORDER_OMIT, $borders->getRight()->getBorderStyle()); |
| 186 | + self::assertSame(Border::BORDER_OMIT, $borders->getTop()->getBorderStyle()); |
| 187 | + self::assertSame(Border::BORDER_OMIT, $borders->getBottom()->getBorderStyle()); |
| 188 | + self::assertNull($style->getNumberFormat()->getFormatCode()); |
| 189 | + |
| 190 | + $style = $conditionalStyles[2]->getStyle(); |
| 191 | + $font = $style->getFont(); |
| 192 | + self::assertSame('FF00FF00', $font->getColor()->getArgb()); |
| 193 | + self::assertNull($font->getItalic()); |
| 194 | + self::assertNull($font->getStrikethrough()); |
| 195 | + // Fill not handled correctly - forget for now |
| 196 | + $borders = $style->getBorders(); |
| 197 | + self::assertSame(Border::BORDER_OMIT, $borders->getLeft()->getBorderStyle()); |
| 198 | + self::assertSame(Border::BORDER_OMIT, $borders->getRight()->getBorderStyle()); |
| 199 | + self::assertSame(Border::BORDER_OMIT, $borders->getTop()->getBorderStyle()); |
| 200 | + self::assertSame(Border::BORDER_OMIT, $borders->getBottom()->getBorderStyle()); |
| 201 | + self::assertNull($style->getNumberFormat()->getFormatCode()); |
| 202 | + |
| 203 | + $spreadsheet->disconnectWorksheets(); |
| 204 | + } |
149 | 205 | } |
0 commit comments