Skip to content

Commit 6a4c2c6

Browse files
committed
Include InlineCss
1 parent 3d6f71f commit 6a4c2c6

File tree

2 files changed

+55
-12
lines changed

2 files changed

+55
-12
lines changed

src/PhpSpreadsheet/Writer/Html.php

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1410,18 +1410,18 @@ private function generateRowCellData(Worksheet $worksheet, null|Cell|string $cel
14101410
$cellData = nl2br($cellData);
14111411

14121412
// Extend CSS class?
1413-
if (!$this->useInlineCss && is_string($cssClass)) {
1414-
$dataType = $cell->getDataType();
1415-
if ($this->betterBoolean && $this->preCalculateFormulas && $dataType === DataType::TYPE_FORMULA) {
1416-
$calculatedValue = $cell->getCalculatedValue();
1417-
if (is_bool($calculatedValue)) {
1418-
$dataType = DataType::TYPE_BOOL;
1419-
} elseif (is_numeric($calculatedValue)) {
1420-
$dataType = DataType::TYPE_NUMERIC;
1421-
} elseif (is_string($calculatedValue)) {
1422-
$dataType = DataType::TYPE_STRING;
1423-
}
1413+
$dataType = $cell->getDataType();
1414+
if ($this->betterBoolean && $this->preCalculateFormulas && $dataType === DataType::TYPE_FORMULA) {
1415+
$calculatedValue = $cell->getCalculatedValue();
1416+
if (is_bool($calculatedValue)) {
1417+
$dataType = DataType::TYPE_BOOL;
1418+
} elseif (is_numeric($calculatedValue)) {
1419+
$dataType = DataType::TYPE_NUMERIC;
1420+
} elseif (is_string($calculatedValue)) {
1421+
$dataType = DataType::TYPE_STRING;
14241422
}
1423+
}
1424+
if (!$this->useInlineCss && is_string($cssClass)) {
14251425
$cssClass .= ' style' . $cell->getXfIndex();
14261426
$cssClass .= ' ' . $dataType;
14271427
} elseif (is_array($cssClass)) {
@@ -1437,7 +1437,7 @@ private function generateRowCellData(Worksheet $worksheet, null|Cell|string $cel
14371437
$sharedStyle->getAlignment()->getHorizontal() == Alignment::HORIZONTAL_GENERAL
14381438
&& isset($this->cssStyles['.' . $cell->getDataType()]['text-align'])
14391439
) {
1440-
$cssClass['text-align'] = $this->cssStyles['.' . $cell->getDataType()]['text-align'];
1440+
$cssClass['text-align'] = $this->cssStyles['.' . $dataType]['text-align'];
14411441
}
14421442
}
14431443
} else {

tests/PhpSpreadsheetTests/Writer/Html/BetterBooleanTest.php

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,49 @@ public function testLocale(): void
141141
$reloaded->disconnectWorksheets();
142142
}
143143

144+
public function testInline(): void
145+
{
146+
$spreadsheet = new Spreadsheet();
147+
$sheet = $spreadsheet->getActiveSheet();
148+
$sheet->getCell('A1')->setValue(1);
149+
$sheet->getCell('B1')->setValue('Hello');
150+
$sheet->getCell('C1')->setValue(true);
151+
$sheet->getCell('D1')->setValue('=IF(1>2, TRUE, FALSE)');
152+
$sheet->getCell('E1')->setValueExplicit(1, DataType::TYPE_STRING);
153+
$sheet->getCell('F1')->setValue('="A"&"B"');
154+
$sheet->getCell('G1')->setValue('=1+2');
155+
$calc = Calculation::getInstance();
156+
$calc->setLocale('fr');
157+
$writer = new HtmlWriter($spreadsheet);
158+
$writer->setBetterBoolean(true);
159+
$writer->setUseInlineCss(true);
160+
$html = $writer->generateHtmlAll();
161+
$html = str_replace('vertical-align:bottom; color:#000000; font-family:\'Calibri\'; font-size:11pt; ', '', $html);
162+
$html = str_replace(' width:42pt" class="gridlines gridlinesp"', '"', $html);
163+
self::assertStringNotContainsString('TRUE', $html);
164+
self::assertStringContainsString('<td style="text-align:right;">1</td>', $html);
165+
self::assertStringContainsString('<td style="text-align:left;">Hello</td>', $html);
166+
self::assertStringContainsString('<td data-type="b" style="text-align:center;">VRAI</td>', $html);
167+
self::assertStringContainsString('<td data-type="b" style="text-align:center;">FAUX</td>', $html);
168+
self::assertStringContainsString('<td style="text-align:left;">AB</td>', $html);
169+
self::assertStringContainsString('<td style="text-align:right;">3</td>', $html);
170+
171+
/** @var callable */
172+
$callableWriter = [$this, 'setBetter'];
173+
$reloaded = $this->writeAndReload($spreadsheet, 'Html', null, $callableWriter);
174+
$spreadsheet->disconnectWorksheets();
175+
176+
$rsheet = $reloaded->getActiveSheet();
177+
self::assertSame(1, $rsheet->getCell('A1')->getValue());
178+
self::assertSame('Hello', $rsheet->getCell('B1')->getValue());
179+
self::assertTrue($rsheet->getCell('C1')->getValue());
180+
self::assertFalse($rsheet->getCell('D1')->getValue());
181+
self::assertSame('1', $rsheet->getCell('E1')->getValue());
182+
self::assertSame('AB', $rsheet->getCell('F1')->getValue());
183+
self::assertSame(3, $rsheet->getCell('G1')->getValue());
184+
$reloaded->disconnectWorksheets();
185+
}
186+
144187
public function testForeignNoLocale(): void
145188
{
146189
$fragment = '<table><tbody><tr>'

0 commit comments

Comments
 (0)