|
5 | 5 | namespace PhpOffice\PhpSpreadsheetTests\Writer\Html; |
6 | 6 |
|
7 | 7 | use PhpOffice\PhpSpreadsheet\Calculation\Calculation; |
| 8 | +use PhpOffice\PhpSpreadsheet\Cell\DataType; |
8 | 9 | use PhpOffice\PhpSpreadsheet\Reader\Html as HtmlReader; |
9 | 10 | use PhpOffice\PhpSpreadsheet\Spreadsheet; |
10 | 11 | use PhpOffice\PhpSpreadsheet\Writer\Html as HtmlWriter; |
@@ -49,92 +50,118 @@ public function testBetterBoolean(): void |
49 | 50 | { |
50 | 51 | $spreadsheet = new Spreadsheet(); |
51 | 52 | $sheet = $spreadsheet->getActiveSheet(); |
52 | | - $sheet->getCell('A1')->setValue(10); |
| 53 | + $sheet->getCell('A1')->setValue(1); |
53 | 54 | $sheet->getCell('B1')->setValue('Hello'); |
54 | 55 | $sheet->getCell('C1')->setValue(true); |
55 | 56 | $sheet->getCell('D1')->setValue('=IF(1>2, TRUE, FALSE)'); |
| 57 | + $sheet->getCell('E1')->setValueExplicit(1, DataType::TYPE_STRING); |
| 58 | + $sheet->getCell('F1')->setValue('="A"&"B"'); |
| 59 | + $sheet->getCell('G1')->setValue('=1+2'); |
56 | 60 |
|
57 | 61 | /** @var callable */ |
58 | 62 | $callableWriter = [$this, 'setBetter']; |
59 | 63 | $reloaded = $this->writeAndReload($spreadsheet, 'Html', null, $callableWriter); |
60 | 64 | $spreadsheet->disconnectWorksheets(); |
61 | 65 |
|
62 | 66 | $rsheet = $reloaded->getActiveSheet(); |
63 | | - self::assertSame(10, $rsheet->getCell('A1')->getValue()); |
| 67 | + self::assertSame(1, $rsheet->getCell('A1')->getValue()); |
64 | 68 | self::assertSame('Hello', $rsheet->getCell('B1')->getValue()); |
65 | 69 | self::assertTrue($rsheet->getCell('C1')->getValue()); |
66 | 70 | self::assertFalse($rsheet->getCell('D1')->getValue()); |
| 71 | + self::assertSame('1', $rsheet->getCell('E1')->getValue()); |
| 72 | + self::assertSame('AB', $rsheet->getCell('F1')->getValue()); |
| 73 | + self::assertSame(3, $rsheet->getCell('G1')->getValue()); |
67 | 74 | $reloaded->disconnectWorksheets(); |
68 | 75 | } |
69 | 76 |
|
70 | 77 | public function testNotBetterBoolean(): void |
71 | 78 | { |
72 | 79 | $spreadsheet = new Spreadsheet(); |
73 | 80 | $sheet = $spreadsheet->getActiveSheet(); |
74 | | - $sheet->getCell('A1')->setValue(10); |
| 81 | + $sheet->getCell('A1')->setValue(1); |
75 | 82 | $sheet->getCell('B1')->setValue('Hello'); |
76 | 83 | $sheet->getCell('C1')->setValue(true); |
77 | 84 | $sheet->getCell('D1')->setValue('=IF(1>2, TRUE, FALSE)'); |
| 85 | + $sheet->getCell('E1')->setValueExplicit(1, DataType::TYPE_STRING); |
| 86 | + $sheet->getCell('F1')->setValue('="A"&"B"'); |
| 87 | + $sheet->getCell('G1')->setValue('=1+2'); |
78 | 88 |
|
79 | 89 | /** @var callable */ |
80 | 90 | $callableWriter = [$this, 'setNotBetter']; |
81 | 91 | $reloaded = $this->writeAndReload($spreadsheet, 'Html', null, $callableWriter); |
82 | 92 | $spreadsheet->disconnectWorksheets(); |
83 | 93 |
|
84 | 94 | $rsheet = $reloaded->getActiveSheet(); |
85 | | - self::assertSame(10, $rsheet->getCell('A1')->getValue()); |
| 95 | + self::assertSame(1, $rsheet->getCell('A1')->getValue()); |
86 | 96 | self::assertSame('Hello', $rsheet->getCell('B1')->getValue()); |
87 | 97 | self::assertSame(1, $rsheet->getCell('C1')->getValue()); |
88 | 98 | self::assertNull($rsheet->getCell('D1')->getValue()); |
| 99 | + self::assertSame(1, $rsheet->getCell('E1')->getValue()); |
| 100 | + self::assertSame('AB', $rsheet->getCell('F1')->getValue()); |
| 101 | + self::assertSame(3, $rsheet->getCell('G1')->getValue()); |
89 | 102 | $reloaded->disconnectWorksheets(); |
90 | 103 | } |
91 | 104 |
|
92 | 105 | public function testLocale(): void |
93 | 106 | { |
94 | 107 | $spreadsheet = new Spreadsheet(); |
95 | 108 | $sheet = $spreadsheet->getActiveSheet(); |
96 | | - $sheet->getCell('A1')->setValue(10); |
| 109 | + $sheet->getCell('A1')->setValue(1); |
97 | 110 | $sheet->getCell('B1')->setValue('Hello'); |
98 | 111 | $sheet->getCell('C1')->setValue(true); |
99 | 112 | $sheet->getCell('D1')->setValue('=IF(1>2, TRUE, FALSE)'); |
| 113 | + $sheet->getCell('E1')->setValueExplicit(1, DataType::TYPE_STRING); |
| 114 | + $sheet->getCell('F1')->setValue('="A"&"B"'); |
| 115 | + $sheet->getCell('G1')->setValue('=1+2'); |
100 | 116 | $calc = Calculation::getInstance(); |
101 | 117 | $calc->setLocale('fr'); |
102 | 118 | $writer = new HtmlWriter($spreadsheet); |
103 | 119 | $writer->setBetterBoolean(true); |
104 | 120 | $html = $writer->generateHtmlAll(); |
105 | | - self::assertStringContainsString('VRAI', $html); |
106 | 121 | self::assertStringNotContainsString('TRUE', $html); |
| 122 | + self::assertStringContainsString('<td data-type="b" class="column2 style0 b">VRAI</td>', $html); |
| 123 | + self::assertStringContainsString('<td data-type="b" class="column3 style0 b">FAUX</td>', $html); |
| 124 | + self::assertStringContainsString('<td data-type="s" class="column4 style0 s">1</td>', $html); |
| 125 | + self::assertStringContainsString('<td class="column5 style0 s">AB</td>', $html); |
| 126 | + self::assertStringContainsString('<td class="column6 style0 n">3</td>', $html); |
107 | 127 |
|
108 | 128 | /** @var callable */ |
109 | 129 | $callableWriter = [$this, 'setBetter']; |
110 | 130 | $reloaded = $this->writeAndReload($spreadsheet, 'Html', null, $callableWriter); |
111 | 131 | $spreadsheet->disconnectWorksheets(); |
112 | 132 |
|
113 | 133 | $rsheet = $reloaded->getActiveSheet(); |
114 | | - self::assertSame(10, $rsheet->getCell('A1')->getValue()); |
| 134 | + self::assertSame(1, $rsheet->getCell('A1')->getValue()); |
115 | 135 | self::assertSame('Hello', $rsheet->getCell('B1')->getValue()); |
116 | 136 | self::assertTrue($rsheet->getCell('C1')->getValue()); |
117 | 137 | self::assertFalse($rsheet->getCell('D1')->getValue()); |
| 138 | + self::assertSame('1', $rsheet->getCell('E1')->getValue()); |
| 139 | + self::assertSame('AB', $rsheet->getCell('F1')->getValue()); |
| 140 | + self::assertSame(3, $rsheet->getCell('G1')->getValue()); |
118 | 141 | $reloaded->disconnectWorksheets(); |
119 | 142 | } |
120 | 143 |
|
121 | 144 | public function testForeignNoLocale(): void |
122 | 145 | { |
123 | 146 | $fragment = '<table><tbody><tr>' |
124 | | - . '<td>10</td>' |
| 147 | + . '<td>1</td>' |
125 | 148 | . '<td>Hello</td>' |
126 | 149 | . '<td data-type="b">ИСТИНА</td>' // Bulgarian TRUE |
127 | 150 | . '<td data-type="b">EPÄTOSI</td>' // Finnish FALSE |
128 | 151 | . '<td data-type="b">whatever</td>' |
129 | 152 | . '<td data-type="b">tRuE</td>' |
| 153 | + . '<td data-type="s">1</td>' |
130 | 154 | . '</tr></tbody></table>'; |
131 | 155 | $reader = new HtmlReader(); |
132 | 156 | $spreadsheet = $reader->loadFromString($fragment); |
133 | 157 | $sheet = $spreadsheet->getActiveSheet(); |
| 158 | + self::assertSame(1, $sheet->getCell('A1')->getValue()); |
| 159 | + self::assertSame('Hello', $sheet->getCell('B1')->getValue()); |
134 | 160 | self::assertTrue($sheet->getCell('C1')->getValue()); |
135 | 161 | self::assertFalse($sheet->getCell('D1')->getValue()); |
136 | 162 | self::assertSame('whatever', $sheet->getCell('E1')->getValue()); |
137 | 163 | self::assertTrue($sheet->getCell('F1')->getValue()); |
| 164 | + self::assertSame('1', $sheet->getCell('G1')->getValue()); |
138 | 165 | $spreadsheet->disconnectWorksheets(); |
139 | 166 | } |
140 | 167 | } |
0 commit comments