|
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