1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
declare(strict_types=1); |
4
|
|
|
|
5
|
|
|
namespace PhpOffice\PhpSpreadsheetTests\Reader\Xls; |
6
|
|
|
|
7
|
|
|
use PhpOffice\PhpSpreadsheet\NamedRange; |
8
|
|
|
use PhpOffice\PhpSpreadsheet\Spreadsheet; |
9
|
|
|
use PhpOffice\PhpSpreadsheetTests\Functional\AbstractFunctional; |
10
|
|
|
|
11
|
|
|
class Issue4356Test extends AbstractFunctional |
12
|
|
|
{ |
13
|
|
|
public function testIssue4356(): void |
14
|
|
|
{ |
15
|
|
|
// Reader couldn't handle sheet title with apostrophe for defined name. |
16
|
|
|
// Issue was reported against Xlsx - see how Xls does. |
17
|
|
|
$nameDefined = 'CELLNAME'; |
18
|
|
|
$originalSpreadsheet = new Spreadsheet(); |
19
|
|
|
$originalSheet = $originalSpreadsheet->getActiveSheet(); |
20
|
|
|
$originalSheet->setTitle("Goodn't sheet name"); |
21
|
|
|
$originalSpreadsheet->addNamedRange( |
22
|
|
|
new NamedRange($nameDefined, $originalSheet, '$A$1') |
23
|
|
|
); |
24
|
|
|
$originalSheet->setCellValue('A1', 'This is a named cell.'); |
25
|
|
|
$originalSheet->getStyle($nameDefined) |
26
|
|
|
->getFont() |
27
|
|
|
->setItalic(true); |
28
|
|
|
$spreadsheet = $this->writeAndReload($originalSpreadsheet, 'Xls'); |
29
|
|
|
$originalSpreadsheet->disconnectWorksheets(); |
30
|
|
|
|
31
|
|
|
$sheet = $spreadsheet->getActiveSheet(); |
32
|
|
|
$sheet->setCellValue('C1', "=$nameDefined"); |
33
|
|
|
self::assertSame('This is a named cell.', $sheet->getCell('C1')->getCalculatedValue()); |
34
|
|
|
$namedRange2 = $spreadsheet->getNamedRange($nameDefined); |
35
|
|
|
self::assertNotNull($namedRange2); |
36
|
|
|
$sheetx = $namedRange2->getWorksheet(); |
37
|
|
|
self::assertNotNull($sheetx); |
38
|
|
|
$style = $sheetx->getStyle($nameDefined); |
39
|
|
|
self::assertTrue($style->getFont()->getItalic()); |
40
|
|
|
$style->getFont()->setItalic(false); |
41
|
|
|
|
42
|
|
|
$spreadsheet->disconnectWorksheets(); |
43
|
|
|
} |
44
|
|
|
} |
45
|
|
|
|