Phpstan Baseline < 4000 Lines Part 3 (#3041)
The last of these changes for now. No remaining Phpstan complaints in any Writer/Xlsx. Number of lines remaining in Phpstan baseline is now below 3500.
This commit is contained in:
parent
4f8aa806bc
commit
5f33ec0eea
|
|
@ -3474,198 +3474,3 @@ parameters:
|
|||
message: "#^Property PhpOffice\\\\PhpSpreadsheet\\\\Writer\\\\Xls\\\\Xf\\:\\:\\$diag is never read, only written\\.$#"
|
||||
count: 1
|
||||
path: src/PhpSpreadsheet/Writer/Xls/Xf.php
|
||||
|
||||
-
|
||||
message: "#^Argument of an invalid type array\\|null supplied for foreach, only iterables are supported\\.$#"
|
||||
count: 1
|
||||
path: src/PhpSpreadsheet/Writer/Xlsx.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#1 \\$path of function basename expects string, array\\|string\\|null given\\.$#"
|
||||
count: 1
|
||||
path: src/PhpSpreadsheet/Writer/Xlsx.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#1 \\$path of function dirname expects string, array\\|string\\|null given\\.$#"
|
||||
count: 1
|
||||
path: src/PhpSpreadsheet/Writer/Xlsx.php
|
||||
|
||||
-
|
||||
message: "#^Possibly invalid array key type array\\|string\\|null\\.$#"
|
||||
count: 1
|
||||
path: src/PhpSpreadsheet/Writer/Xlsx.php
|
||||
|
||||
-
|
||||
message: "#^Property PhpOffice\\\\PhpSpreadsheet\\\\Writer\\\\Xlsx\\:\\:\\$pathNames has no type specified\\.$#"
|
||||
count: 1
|
||||
path: src/PhpSpreadsheet/Writer/Xlsx.php
|
||||
|
||||
-
|
||||
message: "#^Expression on left side of \\?\\? is not nullable\\.$#"
|
||||
count: 1
|
||||
path: src/PhpSpreadsheet/Writer/Xlsx/DefinedNames.php
|
||||
|
||||
-
|
||||
message: "#^Method PhpOffice\\\\PhpSpreadsheet\\\\Writer\\\\Xlsx\\\\Rels\\:\\:writeUnparsedRelationship\\(\\) has parameter \\$relationship with no type specified\\.$#"
|
||||
count: 1
|
||||
path: src/PhpSpreadsheet/Writer/Xlsx/Rels.php
|
||||
|
||||
-
|
||||
message: "#^Method PhpOffice\\\\PhpSpreadsheet\\\\Writer\\\\Xlsx\\\\Rels\\:\\:writeUnparsedRelationship\\(\\) has parameter \\$type with no type specified\\.$#"
|
||||
count: 1
|
||||
path: src/PhpSpreadsheet/Writer/Xlsx/Rels.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#2 \\$id of method PhpOffice\\\\PhpSpreadsheet\\\\Writer\\\\Xlsx\\\\Rels\\:\\:writeRelationship\\(\\) expects int, string given\\.$#"
|
||||
count: 5
|
||||
path: src/PhpSpreadsheet/Writer/Xlsx/Rels.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#4 \\$target of method PhpOffice\\\\PhpSpreadsheet\\\\Writer\\\\Xlsx\\\\Rels\\:\\:writeRelationship\\(\\) expects string, array\\|string\\|null given\\.$#"
|
||||
count: 1
|
||||
path: src/PhpSpreadsheet/Writer/Xlsx/Rels.php
|
||||
|
||||
-
|
||||
message: "#^Cannot call method getBold\\(\\) on PhpOffice\\\\PhpSpreadsheet\\\\Style\\\\Font\\|null\\.$#"
|
||||
count: 1
|
||||
path: src/PhpSpreadsheet/Writer/Xlsx/StringTable.php
|
||||
|
||||
-
|
||||
message: "#^Cannot call method getColor\\(\\) on PhpOffice\\\\PhpSpreadsheet\\\\Style\\\\Font\\|null\\.$#"
|
||||
count: 1
|
||||
path: src/PhpSpreadsheet/Writer/Xlsx/StringTable.php
|
||||
|
||||
-
|
||||
message: "#^Cannot call method getItalic\\(\\) on PhpOffice\\\\PhpSpreadsheet\\\\Style\\\\Font\\|null\\.$#"
|
||||
count: 1
|
||||
path: src/PhpSpreadsheet/Writer/Xlsx/StringTable.php
|
||||
|
||||
-
|
||||
message: "#^Cannot call method getName\\(\\) on PhpOffice\\\\PhpSpreadsheet\\\\Style\\\\Font\\|null\\.$#"
|
||||
count: 1
|
||||
path: src/PhpSpreadsheet/Writer/Xlsx/StringTable.php
|
||||
|
||||
-
|
||||
message: "#^Cannot call method getSize\\(\\) on PhpOffice\\\\PhpSpreadsheet\\\\Style\\\\Font\\|null\\.$#"
|
||||
count: 1
|
||||
path: src/PhpSpreadsheet/Writer/Xlsx/StringTable.php
|
||||
|
||||
-
|
||||
message: "#^Cannot call method getStrikethrough\\(\\) on PhpOffice\\\\PhpSpreadsheet\\\\Style\\\\Font\\|null\\.$#"
|
||||
count: 1
|
||||
path: src/PhpSpreadsheet/Writer/Xlsx/StringTable.php
|
||||
|
||||
-
|
||||
message: "#^Cannot call method getSubscript\\(\\) on PhpOffice\\\\PhpSpreadsheet\\\\Style\\\\Font\\|null\\.$#"
|
||||
count: 2
|
||||
path: src/PhpSpreadsheet/Writer/Xlsx/StringTable.php
|
||||
|
||||
-
|
||||
message: "#^Cannot call method getSuperscript\\(\\) on PhpOffice\\\\PhpSpreadsheet\\\\Style\\\\Font\\|null\\.$#"
|
||||
count: 2
|
||||
path: src/PhpSpreadsheet/Writer/Xlsx/StringTable.php
|
||||
|
||||
-
|
||||
message: "#^Cannot call method getUnderline\\(\\) on PhpOffice\\\\PhpSpreadsheet\\\\Style\\\\Font\\|null\\.$#"
|
||||
count: 1
|
||||
path: src/PhpSpreadsheet/Writer/Xlsx/StringTable.php
|
||||
|
||||
-
|
||||
message: "#^Instanceof between \\*NEVER\\* and PhpOffice\\\\PhpSpreadsheet\\\\RichText\\\\RichText will always evaluate to false\\.$#"
|
||||
count: 1
|
||||
path: src/PhpSpreadsheet/Writer/Xlsx/StringTable.php
|
||||
|
||||
-
|
||||
message: "#^Instanceof between string and PhpOffice\\\\PhpSpreadsheet\\\\RichText\\\\RichText will always evaluate to false\\.$#"
|
||||
count: 1
|
||||
path: src/PhpSpreadsheet/Writer/Xlsx/StringTable.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#1 \\$text of method PhpOffice\\\\PhpSpreadsheet\\\\RichText\\\\RichText\\:\\:createTextRun\\(\\) expects string, string\\|null given\\.$#"
|
||||
count: 1
|
||||
path: src/PhpSpreadsheet/Writer/Xlsx/StringTable.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#2 \\$value of method XMLWriter\\:\\:writeAttribute\\(\\) expects string, float\\|null given\\.$#"
|
||||
count: 1
|
||||
path: src/PhpSpreadsheet/Writer/Xlsx/StringTable.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#2 \\$value of method XMLWriter\\:\\:writeAttribute\\(\\) expects string, int given\\.$#"
|
||||
count: 2
|
||||
path: src/PhpSpreadsheet/Writer/Xlsx/StringTable.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#2 \\$value of method XMLWriter\\:\\:writeAttribute\\(\\) expects string, int\\<0, max\\> given\\.$#"
|
||||
count: 1
|
||||
path: src/PhpSpreadsheet/Writer/Xlsx/StringTable.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#2 \\$value of method XMLWriter\\:\\:writeAttribute\\(\\) expects string, string\\|null given\\.$#"
|
||||
count: 4
|
||||
path: src/PhpSpreadsheet/Writer/Xlsx/StringTable.php
|
||||
|
||||
-
|
||||
message: "#^Cannot call method getStyle\\(\\) on PhpOffice\\\\PhpSpreadsheet\\\\Style\\\\Conditional\\|null\\.$#"
|
||||
count: 1
|
||||
path: src/PhpSpreadsheet/Writer/Xlsx/Style.php
|
||||
|
||||
-
|
||||
message: "#^Comparison operation \"\\<\" between int\\<min, \\-1\\> and 0 is always true\\.$#"
|
||||
count: 2
|
||||
path: src/PhpSpreadsheet/Writer/Xlsx/Style.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#2 \\$borders of method PhpOffice\\\\PhpSpreadsheet\\\\Writer\\\\Xlsx\\\\Style\\:\\:writeBorder\\(\\) expects PhpOffice\\\\PhpSpreadsheet\\\\Style\\\\Borders, PhpOffice\\\\PhpSpreadsheet\\\\Style\\\\Borders\\|null given\\.$#"
|
||||
count: 1
|
||||
path: src/PhpSpreadsheet/Writer/Xlsx/Style.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#2 \\$fill of method PhpOffice\\\\PhpSpreadsheet\\\\Writer\\\\Xlsx\\\\Style\\:\\:writeFill\\(\\) expects PhpOffice\\\\PhpSpreadsheet\\\\Style\\\\Fill, PhpOffice\\\\PhpSpreadsheet\\\\Style\\\\Fill\\|null given\\.$#"
|
||||
count: 1
|
||||
path: src/PhpSpreadsheet/Writer/Xlsx/Style.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#2 \\$font of method PhpOffice\\\\PhpSpreadsheet\\\\Writer\\\\Xlsx\\\\Style\\:\\:writeFont\\(\\) expects PhpOffice\\\\PhpSpreadsheet\\\\Style\\\\Font, PhpOffice\\\\PhpSpreadsheet\\\\Style\\\\Font\\|null given\\.$#"
|
||||
count: 1
|
||||
path: src/PhpSpreadsheet/Writer/Xlsx/Style.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#2 \\$numberFormat of method PhpOffice\\\\PhpSpreadsheet\\\\Writer\\\\Xlsx\\\\Style\\:\\:writeNumFmt\\(\\) expects PhpOffice\\\\PhpSpreadsheet\\\\Style\\\\NumberFormat, PhpOffice\\\\PhpSpreadsheet\\\\Style\\\\NumberFormat\\|null given\\.$#"
|
||||
count: 1
|
||||
path: src/PhpSpreadsheet/Writer/Xlsx/Style.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#2 \\$value of method XMLWriter\\:\\:writeAttribute\\(\\) expects string, float given\\.$#"
|
||||
count: 1
|
||||
path: src/PhpSpreadsheet/Writer/Xlsx/Style.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#2 \\$value of method XMLWriter\\:\\:writeAttribute\\(\\) expects string, int given\\.$#"
|
||||
count: 22
|
||||
path: src/PhpSpreadsheet/Writer/Xlsx/Style.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#2 \\$value of method XMLWriter\\:\\:writeAttribute\\(\\) expects string, int\\<0, max\\> given\\.$#"
|
||||
count: 1
|
||||
path: src/PhpSpreadsheet/Writer/Xlsx/Style.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#2 \\$value of method XMLWriter\\:\\:writeAttribute\\(\\) expects string, int\\<1, max\\> given\\.$#"
|
||||
count: 2
|
||||
path: src/PhpSpreadsheet/Writer/Xlsx/Style.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#2 \\$value of method XMLWriter\\:\\:writeAttribute\\(\\) expects string, int\\|null given\\.$#"
|
||||
count: 1
|
||||
path: src/PhpSpreadsheet/Writer/Xlsx/Style.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#2 \\$value of method XMLWriter\\:\\:writeAttribute\\(\\) expects string, string\\|null given\\.$#"
|
||||
count: 7
|
||||
path: src/PhpSpreadsheet/Writer/Xlsx/Style.php
|
||||
|
||||
-
|
||||
message: "#^Result of \\|\\| is always true\\.$#"
|
||||
count: 1
|
||||
path: src/PhpSpreadsheet/Writer/Xlsx/Style.php
|
||||
|
|
|
|||
|
|
@ -349,12 +349,15 @@ class Xlsx extends BaseWriter
|
|||
//a custom UI in this workbook ? add it ("base" xml and additional objects (pictures) and rels)
|
||||
if ($this->spreadSheet->hasRibbon()) {
|
||||
$tmpRibbonTarget = $this->spreadSheet->getRibbonXMLData('target');
|
||||
$tmpRibbonTarget = is_string($tmpRibbonTarget) ? $tmpRibbonTarget : '';
|
||||
$zipContent[$tmpRibbonTarget] = $this->spreadSheet->getRibbonXMLData('data');
|
||||
if ($this->spreadSheet->hasRibbonBinObjects()) {
|
||||
$tmpRootPath = dirname($tmpRibbonTarget) . '/';
|
||||
$ribbonBinObjects = $this->spreadSheet->getRibbonBinObjects('data'); //the files to write
|
||||
foreach ($ribbonBinObjects as $aPath => $aContent) {
|
||||
$zipContent[$tmpRootPath . $aPath] = $aContent;
|
||||
if (is_array($ribbonBinObjects)) {
|
||||
foreach ($ribbonBinObjects as $aPath => $aContent) {
|
||||
$zipContent[$tmpRootPath . $aPath] = $aContent;
|
||||
}
|
||||
}
|
||||
//the rels for files
|
||||
$zipContent[$tmpRootPath . '_rels/' . basename($tmpRibbonTarget) . '.rels'] = $this->getWriterPartRelsRibbon()->writeRibbonRelationships($this->spreadSheet);
|
||||
|
|
@ -684,6 +687,7 @@ class Xlsx extends BaseWriter
|
|||
return $this;
|
||||
}
|
||||
|
||||
/** @var array */
|
||||
private $pathNames = [];
|
||||
|
||||
private function addZipFile(string $path, string $content): void
|
||||
|
|
|
|||
|
|
@ -118,7 +118,7 @@ class DefinedNames
|
|||
$range[1] = Coordinate::absoluteCoordinate($range[1]);
|
||||
$range = implode(':', $range);
|
||||
|
||||
$this->objWriter->writeRawData('\'' . str_replace("'", "''", $worksheet->getTitle() ?? '') . '\'!' . $range);
|
||||
$this->objWriter->writeRawData('\'' . str_replace("'", "''", $worksheet->getTitle()) . '\'!' . $range);
|
||||
|
||||
$this->objWriter->endElement();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -67,12 +67,13 @@ class Rels extends WriterPart
|
|||
'xl/workbook.xml'
|
||||
);
|
||||
// a custom UI in workbook ?
|
||||
$target = $spreadsheet->getRibbonXMLData('target');
|
||||
if ($spreadsheet->hasRibbon()) {
|
||||
$this->writeRelationShip(
|
||||
$objWriter,
|
||||
5,
|
||||
'http://schemas.microsoft.com/office/2006/relationships/ui/extensibility',
|
||||
$spreadsheet->getRibbonXMLData('target')
|
||||
is_string($target) ? $target : ''
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -284,7 +285,7 @@ class Rels extends WriterPart
|
|||
return $objWriter->getData();
|
||||
}
|
||||
|
||||
private function writeUnparsedRelationship(\PhpOffice\PhpSpreadsheet\Worksheet\Worksheet $worksheet, XMLWriter $objWriter, $relationship, $type): void
|
||||
private function writeUnparsedRelationship(\PhpOffice\PhpSpreadsheet\Worksheet\Worksheet $worksheet, XMLWriter $objWriter, string $relationship, string $type): void
|
||||
{
|
||||
$unparsedLoadedData = $worksheet->getParent()->getUnparsedLoadedData();
|
||||
if (!isset($unparsedLoadedData['sheets'][$worksheet->getCodeName()][$relationship])) {
|
||||
|
|
@ -448,7 +449,7 @@ class Rels extends WriterPart
|
|||
/**
|
||||
* Write Override content type.
|
||||
*
|
||||
* @param int $id Relationship ID. rId will be prepended!
|
||||
* @param int|string $id Relationship ID. rId will be prepended!
|
||||
* @param string $type Relationship type
|
||||
* @param string $target Relationship target
|
||||
* @param string $targetMode Relationship target mode
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ class StringTable extends WriterPart
|
|||
/**
|
||||
* Write string table to XML format.
|
||||
*
|
||||
* @param string[] $stringTable
|
||||
* @param (string|RichText)[] $stringTable
|
||||
*
|
||||
* @return string XML Output
|
||||
*/
|
||||
|
|
@ -86,13 +86,13 @@ class StringTable extends WriterPart
|
|||
// String table
|
||||
$objWriter->startElement('sst');
|
||||
$objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/spreadsheetml/2006/main');
|
||||
$objWriter->writeAttribute('uniqueCount', count($stringTable));
|
||||
$objWriter->writeAttribute('uniqueCount', (string) count($stringTable));
|
||||
|
||||
// Loop through string table
|
||||
foreach ($stringTable as $textElement) {
|
||||
$objWriter->startElement('si');
|
||||
|
||||
if (!$textElement instanceof RichText) {
|
||||
if (!($textElement instanceof RichText)) {
|
||||
$textToWrite = StringHelper::controlCharacterPHP2OOXML($textElement);
|
||||
$objWriter->startElement('t');
|
||||
if ($textToWrite !== trim($textToWrite)) {
|
||||
|
|
@ -100,7 +100,7 @@ class StringTable extends WriterPart
|
|||
}
|
||||
$objWriter->writeRawData($textToWrite);
|
||||
$objWriter->endElement();
|
||||
} elseif ($textElement instanceof RichText) {
|
||||
} else {
|
||||
$this->writeRichText($objWriter, $textElement);
|
||||
}
|
||||
|
||||
|
|
@ -130,14 +130,16 @@ class StringTable extends WriterPart
|
|||
$objWriter->startElement($prefix . 'r');
|
||||
|
||||
// rPr
|
||||
if ($element instanceof Run) {
|
||||
if ($element instanceof Run && $element->getFont() !== null) {
|
||||
// rPr
|
||||
$objWriter->startElement($prefix . 'rPr');
|
||||
|
||||
// rFont
|
||||
$objWriter->startElement($prefix . 'rFont');
|
||||
$objWriter->writeAttribute('val', $element->getFont()->getName());
|
||||
$objWriter->endElement();
|
||||
if ($element->getFont()->getName() !== null) {
|
||||
$objWriter->startElement($prefix . 'rFont');
|
||||
$objWriter->writeAttribute('val', $element->getFont()->getName());
|
||||
$objWriter->endElement();
|
||||
}
|
||||
|
||||
// Bold
|
||||
$objWriter->startElement($prefix . 'b');
|
||||
|
|
@ -166,19 +168,25 @@ class StringTable extends WriterPart
|
|||
$objWriter->endElement();
|
||||
|
||||
// Color
|
||||
$objWriter->startElement($prefix . 'color');
|
||||
$objWriter->writeAttribute('rgb', $element->getFont()->getColor()->getARGB());
|
||||
$objWriter->endElement();
|
||||
if ($element->getFont()->getColor()->getARGB() !== null) {
|
||||
$objWriter->startElement($prefix . 'color');
|
||||
$objWriter->writeAttribute('rgb', $element->getFont()->getColor()->getARGB());
|
||||
$objWriter->endElement();
|
||||
}
|
||||
|
||||
// Size
|
||||
$objWriter->startElement($prefix . 'sz');
|
||||
$objWriter->writeAttribute('val', $element->getFont()->getSize());
|
||||
$objWriter->endElement();
|
||||
if ($element->getFont()->getSize() !== null) {
|
||||
$objWriter->startElement($prefix . 'sz');
|
||||
$objWriter->writeAttribute('val', (string) $element->getFont()->getSize());
|
||||
$objWriter->endElement();
|
||||
}
|
||||
|
||||
// Underline
|
||||
$objWriter->startElement($prefix . 'u');
|
||||
$objWriter->writeAttribute('val', $element->getFont()->getUnderline());
|
||||
$objWriter->endElement();
|
||||
if ($element->getFont()->getUnderline() !== null) {
|
||||
$objWriter->startElement($prefix . 'u');
|
||||
$objWriter->writeAttribute('val', $element->getFont()->getUnderline());
|
||||
$objWriter->endElement();
|
||||
}
|
||||
|
||||
$objWriter->endElement();
|
||||
}
|
||||
|
|
@ -201,10 +209,10 @@ class StringTable extends WriterPart
|
|||
*/
|
||||
public function writeRichTextForCharts(XMLWriter $objWriter, $richText = null, $prefix = ''): void
|
||||
{
|
||||
if (!$richText instanceof RichText) {
|
||||
if (!($richText instanceof RichText)) {
|
||||
$textRun = $richText;
|
||||
$richText = new RichText();
|
||||
$run = $richText->createTextRun($textRun);
|
||||
$run = $richText->createTextRun($textRun ?? '');
|
||||
$run->setFont(null);
|
||||
}
|
||||
|
||||
|
|
@ -226,9 +234,9 @@ class StringTable extends WriterPart
|
|||
}
|
||||
|
||||
// Bold
|
||||
$objWriter->writeAttribute('b', ($element->getFont()->getBold() ? 1 : 0));
|
||||
$objWriter->writeAttribute('b', ($element->getFont()->getBold() ? '1' : '0'));
|
||||
// Italic
|
||||
$objWriter->writeAttribute('i', ($element->getFont()->getItalic() ? 1 : 0));
|
||||
$objWriter->writeAttribute('i', ($element->getFont()->getItalic() ? '1' : '0'));
|
||||
// Underline
|
||||
$underlineType = $element->getFont()->getUnderline();
|
||||
switch ($underlineType) {
|
||||
|
|
@ -241,7 +249,9 @@ class StringTable extends WriterPart
|
|||
|
||||
break;
|
||||
}
|
||||
$objWriter->writeAttribute('u', $underlineType);
|
||||
if ($underlineType !== null) {
|
||||
$objWriter->writeAttribute('u', $underlineType);
|
||||
}
|
||||
// Strikethrough
|
||||
$objWriter->writeAttribute('strike', ($element->getFont()->getStriketype() ?: 'noStrike'));
|
||||
// Superscript/subscript
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ class Style extends WriterPart
|
|||
|
||||
// numFmts
|
||||
$objWriter->startElement('numFmts');
|
||||
$objWriter->writeAttribute('count', $this->getParentWriter()->getNumFmtHashTable()->count());
|
||||
$objWriter->writeAttribute('count', (string) $this->getParentWriter()->getNumFmtHashTable()->count());
|
||||
|
||||
// numFmt
|
||||
for ($i = 0; $i < $this->getParentWriter()->getNumFmtHashTable()->count(); ++$i) {
|
||||
|
|
@ -51,54 +51,63 @@ class Style extends WriterPart
|
|||
|
||||
// fonts
|
||||
$objWriter->startElement('fonts');
|
||||
$objWriter->writeAttribute('count', $this->getParentWriter()->getFontHashTable()->count());
|
||||
$objWriter->writeAttribute('count', (string) $this->getParentWriter()->getFontHashTable()->count());
|
||||
|
||||
// font
|
||||
for ($i = 0; $i < $this->getParentWriter()->getFontHashTable()->count(); ++$i) {
|
||||
$this->writeFont($objWriter, $this->getParentWriter()->getFontHashTable()->getByIndex($i));
|
||||
$thisfont = $this->getParentWriter()->getFontHashTable()->getByIndex($i);
|
||||
if ($thisfont !== null) {
|
||||
$this->writeFont($objWriter, $thisfont);
|
||||
}
|
||||
}
|
||||
|
||||
$objWriter->endElement();
|
||||
|
||||
// fills
|
||||
$objWriter->startElement('fills');
|
||||
$objWriter->writeAttribute('count', $this->getParentWriter()->getFillHashTable()->count());
|
||||
$objWriter->writeAttribute('count', (string) $this->getParentWriter()->getFillHashTable()->count());
|
||||
|
||||
// fill
|
||||
for ($i = 0; $i < $this->getParentWriter()->getFillHashTable()->count(); ++$i) {
|
||||
$this->writeFill($objWriter, $this->getParentWriter()->getFillHashTable()->getByIndex($i));
|
||||
$thisfill = $this->getParentWriter()->getFillHashTable()->getByIndex($i);
|
||||
if ($thisfill !== null) {
|
||||
$this->writeFill($objWriter, $thisfill);
|
||||
}
|
||||
}
|
||||
|
||||
$objWriter->endElement();
|
||||
|
||||
// borders
|
||||
$objWriter->startElement('borders');
|
||||
$objWriter->writeAttribute('count', $this->getParentWriter()->getBordersHashTable()->count());
|
||||
$objWriter->writeAttribute('count', (string) $this->getParentWriter()->getBordersHashTable()->count());
|
||||
|
||||
// border
|
||||
for ($i = 0; $i < $this->getParentWriter()->getBordersHashTable()->count(); ++$i) {
|
||||
$this->writeBorder($objWriter, $this->getParentWriter()->getBordersHashTable()->getByIndex($i));
|
||||
$thisborder = $this->getParentWriter()->getBordersHashTable()->getByIndex($i);
|
||||
if ($thisborder !== null) {
|
||||
$this->writeBorder($objWriter, $thisborder);
|
||||
}
|
||||
}
|
||||
|
||||
$objWriter->endElement();
|
||||
|
||||
// cellStyleXfs
|
||||
$objWriter->startElement('cellStyleXfs');
|
||||
$objWriter->writeAttribute('count', 1);
|
||||
$objWriter->writeAttribute('count', '1');
|
||||
|
||||
// xf
|
||||
$objWriter->startElement('xf');
|
||||
$objWriter->writeAttribute('numFmtId', 0);
|
||||
$objWriter->writeAttribute('fontId', 0);
|
||||
$objWriter->writeAttribute('fillId', 0);
|
||||
$objWriter->writeAttribute('borderId', 0);
|
||||
$objWriter->writeAttribute('numFmtId', '0');
|
||||
$objWriter->writeAttribute('fontId', '0');
|
||||
$objWriter->writeAttribute('fillId', '0');
|
||||
$objWriter->writeAttribute('borderId', '0');
|
||||
$objWriter->endElement();
|
||||
|
||||
$objWriter->endElement();
|
||||
|
||||
// cellXfs
|
||||
$objWriter->startElement('cellXfs');
|
||||
$objWriter->writeAttribute('count', count($spreadsheet->getCellXfCollection()));
|
||||
$objWriter->writeAttribute('count', (string) count($spreadsheet->getCellXfCollection()));
|
||||
|
||||
// xf
|
||||
foreach ($spreadsheet->getCellXfCollection() as $cellXf) {
|
||||
|
|
@ -109,24 +118,27 @@ class Style extends WriterPart
|
|||
|
||||
// cellStyles
|
||||
$objWriter->startElement('cellStyles');
|
||||
$objWriter->writeAttribute('count', 1);
|
||||
$objWriter->writeAttribute('count', '1');
|
||||
|
||||
// cellStyle
|
||||
$objWriter->startElement('cellStyle');
|
||||
$objWriter->writeAttribute('name', 'Normal');
|
||||
$objWriter->writeAttribute('xfId', 0);
|
||||
$objWriter->writeAttribute('builtinId', 0);
|
||||
$objWriter->writeAttribute('xfId', '0');
|
||||
$objWriter->writeAttribute('builtinId', '0');
|
||||
$objWriter->endElement();
|
||||
|
||||
$objWriter->endElement();
|
||||
|
||||
// dxfs
|
||||
$objWriter->startElement('dxfs');
|
||||
$objWriter->writeAttribute('count', $this->getParentWriter()->getStylesConditionalHashTable()->count());
|
||||
$objWriter->writeAttribute('count', (string) $this->getParentWriter()->getStylesConditionalHashTable()->count());
|
||||
|
||||
// dxf
|
||||
for ($i = 0; $i < $this->getParentWriter()->getStylesConditionalHashTable()->count(); ++$i) {
|
||||
$this->writeCellStyleDxf($objWriter, $this->getParentWriter()->getStylesConditionalHashTable()->getByIndex($i)->getStyle());
|
||||
$thisstyle = $this->getParentWriter()->getStylesConditionalHashTable()->getByIndex($i);
|
||||
if ($thisstyle !== null) {
|
||||
$this->writeCellStyleDxf($objWriter, $thisstyle->getStyle());
|
||||
}
|
||||
}
|
||||
|
||||
$objWriter->endElement();
|
||||
|
|
@ -171,17 +183,19 @@ class Style extends WriterPart
|
|||
|
||||
// gradientFill
|
||||
$objWriter->startElement('gradientFill');
|
||||
$objWriter->writeAttribute('type', $fill->getFillType());
|
||||
$objWriter->writeAttribute('degree', $fill->getRotation());
|
||||
$objWriter->writeAttribute('type', (string) $fill->getFillType());
|
||||
$objWriter->writeAttribute('degree', (string) $fill->getRotation());
|
||||
|
||||
// stop
|
||||
$objWriter->startElement('stop');
|
||||
$objWriter->writeAttribute('position', '0');
|
||||
|
||||
// color
|
||||
$objWriter->startElement('color');
|
||||
$objWriter->writeAttribute('rgb', $fill->getStartColor()->getARGB());
|
||||
$objWriter->endElement();
|
||||
if ($fill->getStartColor()->getARGB() !== null) {
|
||||
$objWriter->startElement('color');
|
||||
$objWriter->writeAttribute('rgb', $fill->getStartColor()->getARGB());
|
||||
$objWriter->endElement();
|
||||
}
|
||||
|
||||
$objWriter->endElement();
|
||||
|
||||
|
|
@ -190,9 +204,11 @@ class Style extends WriterPart
|
|||
$objWriter->writeAttribute('position', '1');
|
||||
|
||||
// color
|
||||
$objWriter->startElement('color');
|
||||
$objWriter->writeAttribute('rgb', $fill->getEndColor()->getARGB());
|
||||
$objWriter->endElement();
|
||||
if ($fill->getEndColor()->getARGB() !== null) {
|
||||
$objWriter->startElement('color');
|
||||
$objWriter->writeAttribute('rgb', $fill->getEndColor()->getARGB());
|
||||
$objWriter->endElement();
|
||||
}
|
||||
|
||||
$objWriter->endElement();
|
||||
|
||||
|
|
@ -220,7 +236,7 @@ class Style extends WriterPart
|
|||
|
||||
// patternFill
|
||||
$objWriter->startElement('patternFill');
|
||||
$objWriter->writeAttribute('patternType', $fill->getFillType());
|
||||
$objWriter->writeAttribute('patternType', (string) $fill->getFillType());
|
||||
|
||||
if (self::writePatternColors($fill)) {
|
||||
// fgColor
|
||||
|
|
@ -360,20 +376,20 @@ class Style extends WriterPart
|
|||
{
|
||||
// xf
|
||||
$objWriter->startElement('xf');
|
||||
$objWriter->writeAttribute('xfId', 0);
|
||||
$objWriter->writeAttribute('fontId', (int) $this->getParentWriter()->getFontHashTable()->getIndexForHashCode($style->getFont()->getHashCode()));
|
||||
$objWriter->writeAttribute('xfId', '0');
|
||||
$objWriter->writeAttribute('fontId', (string) (int) $this->getParentWriter()->getFontHashTable()->getIndexForHashCode($style->getFont()->getHashCode()));
|
||||
if ($style->getQuotePrefix()) {
|
||||
$objWriter->writeAttribute('quotePrefix', 1);
|
||||
$objWriter->writeAttribute('quotePrefix', '1');
|
||||
}
|
||||
|
||||
if ($style->getNumberFormat()->getBuiltInFormatCode() === false) {
|
||||
$objWriter->writeAttribute('numFmtId', (int) ($this->getParentWriter()->getNumFmtHashTable()->getIndexForHashCode($style->getNumberFormat()->getHashCode()) + 164));
|
||||
$objWriter->writeAttribute('numFmtId', (string) (int) ($this->getParentWriter()->getNumFmtHashTable()->getIndexForHashCode($style->getNumberFormat()->getHashCode()) + 164));
|
||||
} else {
|
||||
$objWriter->writeAttribute('numFmtId', (int) $style->getNumberFormat()->getBuiltInFormatCode());
|
||||
$objWriter->writeAttribute('numFmtId', (string) (int) $style->getNumberFormat()->getBuiltInFormatCode());
|
||||
}
|
||||
|
||||
$objWriter->writeAttribute('fillId', (int) $this->getParentWriter()->getFillHashTable()->getIndexForHashCode($style->getFill()->getHashCode()));
|
||||
$objWriter->writeAttribute('borderId', (int) $this->getParentWriter()->getBordersHashTable()->getIndexForHashCode($style->getBorders()->getHashCode()));
|
||||
$objWriter->writeAttribute('fillId', (string) (int) $this->getParentWriter()->getFillHashTable()->getIndexForHashCode($style->getFill()->getHashCode()));
|
||||
$objWriter->writeAttribute('borderId', (string) (int) $this->getParentWriter()->getBordersHashTable()->getIndexForHashCode($style->getBorders()->getHashCode()));
|
||||
|
||||
// Apply styles?
|
||||
$objWriter->writeAttribute('applyFont', ($spreadsheet->getDefaultStyle()->getFont()->getHashCode() != $style->getFont()->getHashCode()) ? '1' : '0');
|
||||
|
|
@ -387,25 +403,25 @@ class Style extends WriterPart
|
|||
|
||||
// alignment
|
||||
$objWriter->startElement('alignment');
|
||||
$objWriter->writeAttribute('horizontal', $style->getAlignment()->getHorizontal());
|
||||
$objWriter->writeAttribute('vertical', $style->getAlignment()->getVertical());
|
||||
$objWriter->writeAttribute('horizontal', (string) $style->getAlignment()->getHorizontal());
|
||||
$objWriter->writeAttribute('vertical', (string) $style->getAlignment()->getVertical());
|
||||
|
||||
$textRotation = 0;
|
||||
if ($style->getAlignment()->getTextRotation() >= 0) {
|
||||
$textRotation = $style->getAlignment()->getTextRotation();
|
||||
} elseif ($style->getAlignment()->getTextRotation() < 0) {
|
||||
} else {
|
||||
$textRotation = 90 - $style->getAlignment()->getTextRotation();
|
||||
}
|
||||
$objWriter->writeAttribute('textRotation', $textRotation);
|
||||
$objWriter->writeAttribute('textRotation', (string) $textRotation);
|
||||
|
||||
$objWriter->writeAttribute('wrapText', ($style->getAlignment()->getWrapText() ? 'true' : 'false'));
|
||||
$objWriter->writeAttribute('shrinkToFit', ($style->getAlignment()->getShrinkToFit() ? 'true' : 'false'));
|
||||
|
||||
if ($style->getAlignment()->getIndent() > 0) {
|
||||
$objWriter->writeAttribute('indent', $style->getAlignment()->getIndent());
|
||||
$objWriter->writeAttribute('indent', (string) $style->getAlignment()->getIndent());
|
||||
}
|
||||
if ($style->getAlignment()->getReadOrder() > 0) {
|
||||
$objWriter->writeAttribute('readingOrder', $style->getAlignment()->getReadOrder());
|
||||
$objWriter->writeAttribute('readingOrder', (string) $style->getAlignment()->getReadOrder());
|
||||
}
|
||||
$objWriter->endElement();
|
||||
|
||||
|
|
@ -454,10 +470,10 @@ class Style extends WriterPart
|
|||
$textRotation = 0;
|
||||
if ($style->getAlignment()->getTextRotation() >= 0) {
|
||||
$textRotation = $style->getAlignment()->getTextRotation();
|
||||
} elseif ($style->getAlignment()->getTextRotation() < 0) {
|
||||
} else {
|
||||
$textRotation = 90 - $style->getAlignment()->getTextRotation();
|
||||
}
|
||||
$objWriter->writeAttribute('textRotation', $textRotation);
|
||||
$objWriter->writeAttribute('textRotation', (string) $textRotation);
|
||||
}
|
||||
$objWriter->endElement();
|
||||
|
||||
|
|
@ -465,7 +481,7 @@ class Style extends WriterPart
|
|||
$this->writeBorder($objWriter, $style->getBorders());
|
||||
|
||||
// protection
|
||||
if (($style->getProtection()->getLocked() !== null) || ($style->getProtection()->getHidden() !== null)) {
|
||||
if ((!empty($style->getProtection()->getLocked())) || (!empty($style->getProtection()->getHidden()))) {
|
||||
if (
|
||||
$style->getProtection()->getLocked() !== Protection::PROTECTION_INHERIT ||
|
||||
$style->getProtection()->getHidden() !== Protection::PROTECTION_INHERIT
|
||||
|
|
@ -503,11 +519,13 @@ class Style extends WriterPart
|
|||
$objWriter->writeAttribute('style', $border->getBorderStyle());
|
||||
|
||||
// color
|
||||
$objWriter->startElement('color');
|
||||
$objWriter->writeAttribute('rgb', $border->getColor()->getARGB());
|
||||
$objWriter->endElement();
|
||||
if ($border->getColor()->getARGB() !== null) {
|
||||
$objWriter->startElement('color');
|
||||
$objWriter->writeAttribute('rgb', $border->getColor()->getARGB());
|
||||
$objWriter->endElement();
|
||||
|
||||
$objWriter->endElement();
|
||||
$objWriter->endElement();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -516,15 +534,15 @@ class Style extends WriterPart
|
|||
*
|
||||
* @param int $id Number Format identifier
|
||||
*/
|
||||
private function writeNumFmt(XMLWriter $objWriter, NumberFormat $numberFormat, $id = 0): void
|
||||
private function writeNumFmt(XMLWriter $objWriter, ?NumberFormat $numberFormat, $id = 0): void
|
||||
{
|
||||
// Translate formatcode
|
||||
$formatCode = $numberFormat->getFormatCode();
|
||||
$formatCode = ($numberFormat === null) ? null : $numberFormat->getFormatCode();
|
||||
|
||||
// numFmt
|
||||
if ($formatCode !== null) {
|
||||
$objWriter->startElement('numFmt');
|
||||
$objWriter->writeAttribute('numFmtId', ($id + 164));
|
||||
$objWriter->writeAttribute('numFmtId', (string) ($id + 164));
|
||||
$objWriter->writeAttribute('formatCode', $formatCode);
|
||||
$objWriter->endElement();
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue