locale = $calculation->getLocale(); } protected function tearDown(): void { $calculation = Calculation::getInstance(); $calculation->setLocale($this->locale); } public function testDefault(): void { $spreadsheet = new Spreadsheet(); $writer = new HtmlWriter($spreadsheet); // Default will change with next PhpSpreadsheet release self::assertFalse($writer->getBetterBoolean()); $spreadsheet->disconnectWorksheets(); } public function setBetter(HtmlWriter $writer): void { $writer->setBetterBoolean(true); } public function setNotBetter(HtmlWriter $writer): void { $writer->setBetterBoolean(false); } public function testBetterBoolean(): void { $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); $sheet->getCell('A1')->setValue(1); $sheet->getCell('B1')->setValue('Hello'); $sheet->getCell('C1')->setValue(true); $sheet->getCell('D1')->setValue('=IF(1>2, TRUE, FALSE)'); $sheet->getCell('E1')->setValueExplicit(1, DataType::TYPE_STRING); $sheet->getCell('F1')->setValue('="A"&"B"'); $sheet->getCell('G1')->setValue('=1+2'); /** @var callable */ $callableWriter = [$this, 'setBetter']; $reloaded = $this->writeAndReload($spreadsheet, 'Html', null, $callableWriter); $spreadsheet->disconnectWorksheets(); $rsheet = $reloaded->getActiveSheet(); self::assertSame(1, $rsheet->getCell('A1')->getValue()); self::assertSame('Hello', $rsheet->getCell('B1')->getValue()); self::assertTrue($rsheet->getCell('C1')->getValue()); self::assertFalse($rsheet->getCell('D1')->getValue()); self::assertSame('1', $rsheet->getCell('E1')->getValue()); self::assertSame('AB', $rsheet->getCell('F1')->getValue()); self::assertSame(3, $rsheet->getCell('G1')->getValue()); $reloaded->disconnectWorksheets(); } public function testNotBetterBoolean(): void { $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); $sheet->getCell('A1')->setValue(1); $sheet->getCell('B1')->setValue('Hello'); $sheet->getCell('C1')->setValue(true); $sheet->getCell('D1')->setValue('=IF(1>2, TRUE, FALSE)'); $sheet->getCell('E1')->setValueExplicit(1, DataType::TYPE_STRING); $sheet->getCell('F1')->setValue('="A"&"B"'); $sheet->getCell('G1')->setValue('=1+2'); /** @var callable */ $callableWriter = [$this, 'setNotBetter']; $reloaded = $this->writeAndReload($spreadsheet, 'Html', null, $callableWriter); $spreadsheet->disconnectWorksheets(); $rsheet = $reloaded->getActiveSheet(); self::assertSame(1, $rsheet->getCell('A1')->getValue()); self::assertSame('Hello', $rsheet->getCell('B1')->getValue()); self::assertSame(1, $rsheet->getCell('C1')->getValue()); self::assertNull($rsheet->getCell('D1')->getValue()); self::assertSame(1, $rsheet->getCell('E1')->getValue()); self::assertSame('AB', $rsheet->getCell('F1')->getValue()); self::assertSame(3, $rsheet->getCell('G1')->getValue()); $reloaded->disconnectWorksheets(); } public function testLocale(): void { $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); $sheet->getCell('A1')->setValue(1); $sheet->getCell('B1')->setValue('Hello'); $sheet->getCell('C1')->setValue(true); $sheet->getCell('D1')->setValue('=IF(1>2, TRUE, FALSE)'); $sheet->getCell('E1')->setValueExplicit(1, DataType::TYPE_STRING); $sheet->getCell('F1')->setValue('="A"&"B"'); $sheet->getCell('G1')->setValue('=1+2'); $calc = Calculation::getInstance(); $calc->setLocale('fr'); $writer = new HtmlWriter($spreadsheet); $writer->setBetterBoolean(true); $html = $writer->generateHtmlAll(); self::assertStringNotContainsString('TRUE', $html); self::assertStringContainsString('
| 1 | ' . 'Hello | ' . 'ИСТИНА | ' // Bulgarian TRUE . 'EPÄTOSI | ' // Finnish FALSE . 'whatever | ' . 'tRuE | ' . '1 | ' . '