mirror of
https://github.com/PHPOffice/PhpSpreadsheet.git
synced 2026-09-12 02:56:44 +00:00
Include InlineCss
This commit is contained in:
@@ -1410,18 +1410,18 @@ class Html extends BaseWriter
|
||||
$cellData = nl2br($cellData);
|
||||
|
||||
// Extend CSS class?
|
||||
if (!$this->useInlineCss && is_string($cssClass)) {
|
||||
$dataType = $cell->getDataType();
|
||||
if ($this->betterBoolean && $this->preCalculateFormulas && $dataType === DataType::TYPE_FORMULA) {
|
||||
$calculatedValue = $cell->getCalculatedValue();
|
||||
if (is_bool($calculatedValue)) {
|
||||
$dataType = DataType::TYPE_BOOL;
|
||||
} elseif (is_numeric($calculatedValue)) {
|
||||
$dataType = DataType::TYPE_NUMERIC;
|
||||
} elseif (is_string($calculatedValue)) {
|
||||
$dataType = DataType::TYPE_STRING;
|
||||
}
|
||||
$dataType = $cell->getDataType();
|
||||
if ($this->betterBoolean && $this->preCalculateFormulas && $dataType === DataType::TYPE_FORMULA) {
|
||||
$calculatedValue = $cell->getCalculatedValue();
|
||||
if (is_bool($calculatedValue)) {
|
||||
$dataType = DataType::TYPE_BOOL;
|
||||
} elseif (is_numeric($calculatedValue)) {
|
||||
$dataType = DataType::TYPE_NUMERIC;
|
||||
} elseif (is_string($calculatedValue)) {
|
||||
$dataType = DataType::TYPE_STRING;
|
||||
}
|
||||
}
|
||||
if (!$this->useInlineCss && is_string($cssClass)) {
|
||||
$cssClass .= ' style' . $cell->getXfIndex();
|
||||
$cssClass .= ' ' . $dataType;
|
||||
} elseif (is_array($cssClass)) {
|
||||
@@ -1437,7 +1437,7 @@ class Html extends BaseWriter
|
||||
$sharedStyle->getAlignment()->getHorizontal() == Alignment::HORIZONTAL_GENERAL
|
||||
&& isset($this->cssStyles['.' . $cell->getDataType()]['text-align'])
|
||||
) {
|
||||
$cssClass['text-align'] = $this->cssStyles['.' . $cell->getDataType()]['text-align'];
|
||||
$cssClass['text-align'] = $this->cssStyles['.' . $dataType]['text-align'];
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -141,6 +141,49 @@ class BetterBooleanTest extends Functional\AbstractFunctional
|
||||
$reloaded->disconnectWorksheets();
|
||||
}
|
||||
|
||||
public function testInline(): 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);
|
||||
$writer->setUseInlineCss(true);
|
||||
$html = $writer->generateHtmlAll();
|
||||
$html = str_replace('vertical-align:bottom; color:#000000; font-family:\'Calibri\'; font-size:11pt; ', '', $html);
|
||||
$html = str_replace(' width:42pt" class="gridlines gridlinesp"', '"', $html);
|
||||
self::assertStringNotContainsString('TRUE', $html);
|
||||
self::assertStringContainsString('<td style="text-align:right;">1</td>', $html);
|
||||
self::assertStringContainsString('<td style="text-align:left;">Hello</td>', $html);
|
||||
self::assertStringContainsString('<td data-type="b" style="text-align:center;">VRAI</td>', $html);
|
||||
self::assertStringContainsString('<td data-type="b" style="text-align:center;">FAUX</td>', $html);
|
||||
self::assertStringContainsString('<td style="text-align:left;">AB</td>', $html);
|
||||
self::assertStringContainsString('<td style="text-align:right;">3</td>', $html);
|
||||
|
||||
/** @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 testForeignNoLocale(): void
|
||||
{
|
||||
$fragment = '<table><tbody><tr>'
|
||||
|
||||
Reference in New Issue
Block a user