validation-bugsnag-email
This commit is contained in:
@@ -803,7 +803,12 @@ class Html extends BaseWriter
|
||||
private function buildCssPerSheet(Worksheet $sheet, array &$css): void
|
||||
{
|
||||
// Calculate hash code
|
||||
$sheetIndex = $sheet->getParent()->getIndex($sheet);
|
||||
$sheetIndex = $sheet->getParentOrThrow()->getIndex($sheet);
|
||||
$setup = $sheet->getPageSetup();
|
||||
if ($setup->getFitToPage() && $setup->getFitToHeight() === 1) {
|
||||
$css["table.sheet$sheetIndex"]['page-break-inside'] = 'avoid';
|
||||
$css["table.sheet$sheetIndex"]['break-inside'] = 'avoid';
|
||||
}
|
||||
|
||||
// Build styles
|
||||
// Calculate column widths
|
||||
@@ -1139,7 +1144,7 @@ class Html extends BaseWriter
|
||||
*/
|
||||
private function generateTableHeader(Worksheet $worksheet, $showid = true)
|
||||
{
|
||||
$sheetIndex = $worksheet->getParent()->getIndex($worksheet);
|
||||
$sheetIndex = $worksheet->getParentOrThrow()->getIndex($worksheet);
|
||||
|
||||
// Construct HTML
|
||||
$html = '';
|
||||
@@ -1284,7 +1289,7 @@ class Html extends BaseWriter
|
||||
$this->generateRowCellDataValueRich($cell, $cellData);
|
||||
} else {
|
||||
$origData = $this->preCalculateFormulas ? $cell->getCalculatedValue() : $cell->getValue();
|
||||
$formatCode = $worksheet->getParent()->getCellXfByIndex($cell->getXfIndex())->getNumberFormat()->getFormatCode();
|
||||
$formatCode = $worksheet->getParentOrThrow()->getCellXfByIndex($cell->getXfIndex())->getNumberFormat()->getFormatCode();
|
||||
|
||||
$cellData = NumberFormat::toFormattedString(
|
||||
$origData ?? '',
|
||||
@@ -1295,9 +1300,9 @@ class Html extends BaseWriter
|
||||
if ($cellData === $origData) {
|
||||
$cellData = htmlspecialchars($cellData, Settings::htmlEntityFlags());
|
||||
}
|
||||
if ($worksheet->getParent()->getCellXfByIndex($cell->getXfIndex())->getFont()->getSuperscript()) {
|
||||
if ($worksheet->getParentOrThrow()->getCellXfByIndex($cell->getXfIndex())->getFont()->getSuperscript()) {
|
||||
$cellData = '<sup>' . $cellData . '</sup>';
|
||||
} elseif ($worksheet->getParent()->getCellXfByIndex($cell->getXfIndex())->getFont()->getSubscript()) {
|
||||
} elseif ($worksheet->getParentOrThrow()->getCellXfByIndex($cell->getXfIndex())->getFont()->getSubscript()) {
|
||||
$cellData = '<sub>' . $cellData . '</sub>';
|
||||
}
|
||||
}
|
||||
@@ -1342,7 +1347,7 @@ class Html extends BaseWriter
|
||||
}
|
||||
|
||||
// General horizontal alignment: Actual horizontal alignment depends on dataType
|
||||
$sharedStyle = $worksheet->getParent()->getCellXfByIndex($cell->getXfIndex());
|
||||
$sharedStyle = $worksheet->getParentOrThrow()->getCellXfByIndex($cell->getXfIndex());
|
||||
if (
|
||||
$sharedStyle->getAlignment()->getHorizontal() == Alignment::HORIZONTAL_GENERAL
|
||||
&& isset($this->cssStyles['.' . $cell->getDataType()]['text-align'])
|
||||
@@ -1449,7 +1454,7 @@ class Html extends BaseWriter
|
||||
private function generateRow(Worksheet $worksheet, array $values, $row, $cellType)
|
||||
{
|
||||
// Sheet index
|
||||
$sheetIndex = $worksheet->getParent()->getIndex($worksheet);
|
||||
$sheetIndex = $worksheet->getParentOrThrow()->getIndex($worksheet);
|
||||
$html = $this->generateRowStart($worksheet, $sheetIndex, $row);
|
||||
$generateDiv = $this->isMPdf && $worksheet->getRowDimension($row + 1)->getVisible() === false;
|
||||
if ($generateDiv) {
|
||||
@@ -1470,14 +1475,14 @@ class Html extends BaseWriter
|
||||
}
|
||||
|
||||
// Should the cell be written or is it swallowed by a rowspan or colspan?
|
||||
$writeCell = !(isset($this->isSpannedCell[$worksheet->getParent()->getIndex($worksheet)][$row + 1][$colNum])
|
||||
&& $this->isSpannedCell[$worksheet->getParent()->getIndex($worksheet)][$row + 1][$colNum]);
|
||||
$writeCell = !(isset($this->isSpannedCell[$worksheet->getParentOrThrow()->getIndex($worksheet)][$row + 1][$colNum])
|
||||
&& $this->isSpannedCell[$worksheet->getParentOrThrow()->getIndex($worksheet)][$row + 1][$colNum]);
|
||||
|
||||
// Colspan and Rowspan
|
||||
$colSpan = 1;
|
||||
$rowSpan = 1;
|
||||
if (isset($this->isBaseCell[$worksheet->getParent()->getIndex($worksheet)][$row + 1][$colNum])) {
|
||||
$spans = $this->isBaseCell[$worksheet->getParent()->getIndex($worksheet)][$row + 1][$colNum];
|
||||
if (isset($this->isBaseCell[$worksheet->getParentOrThrow()->getIndex($worksheet)][$row + 1][$colNum])) {
|
||||
$spans = $this->isBaseCell[$worksheet->getParentOrThrow()->getIndex($worksheet)][$row + 1][$colNum];
|
||||
$rowSpan = $spans['rowspan'];
|
||||
$colSpan = $spans['colspan'];
|
||||
|
||||
|
||||
@@ -245,7 +245,7 @@ class Xls extends BaseWriter
|
||||
|
||||
foreach ($this->spreadsheet->getAllsheets() as $sheet) {
|
||||
// sheet index
|
||||
$sheetIndex = $sheet->getParent()->getIndex($sheet);
|
||||
$sheetIndex = $sheet->getParentOrThrow()->getIndex($sheet);
|
||||
|
||||
// check if there are any shapes for this sheet
|
||||
$filterRange = $sheet->getAutoFilter()->getRange();
|
||||
@@ -260,7 +260,7 @@ class Xls extends BaseWriter
|
||||
$dgContainer = new DgContainer();
|
||||
|
||||
// set the drawing index (we use sheet index + 1)
|
||||
$dgId = $sheet->getParent()->getIndex($sheet) + 1;
|
||||
$dgId = $sheet->getParentOrThrow()->getIndex($sheet) + 1;
|
||||
$dgContainer->setDgId($dgId);
|
||||
$escher->setDgContainer($dgContainer);
|
||||
|
||||
@@ -272,7 +272,7 @@ class Xls extends BaseWriter
|
||||
$spContainer = new SpContainer();
|
||||
$spContainer->setSpgr(true);
|
||||
$spContainer->setSpType(0);
|
||||
$spContainer->setSpId(($sheet->getParent()->getIndex($sheet) + 1) << 10);
|
||||
$spContainer->setSpId(($sheet->getParentOrThrow()->getIndex($sheet) + 1) << 10);
|
||||
$spgrContainer->addChild($spContainer);
|
||||
|
||||
// add the shapes
|
||||
@@ -294,7 +294,7 @@ class Xls extends BaseWriter
|
||||
|
||||
// set the shape index (we combine 1-based sheet index and $countShapes to create unique shape index)
|
||||
$reducedSpId = $countShapes[$sheetIndex];
|
||||
$spId = $reducedSpId | ($sheet->getParent()->getIndex($sheet) + 1) << 10;
|
||||
$spId = $reducedSpId | ($sheet->getParentOrThrow()->getIndex($sheet) + 1) << 10;
|
||||
$spContainer->setSpId($spId);
|
||||
|
||||
// keep track of last reducedSpId
|
||||
@@ -351,7 +351,7 @@ class Xls extends BaseWriter
|
||||
|
||||
// set the shape index (we combine 1-based sheet index and $countShapes to create unique shape index)
|
||||
$reducedSpId = $countShapes[$sheetIndex];
|
||||
$spId = $reducedSpId | ($sheet->getParent()->getIndex($sheet) + 1) << 10;
|
||||
$spId = $reducedSpId | ($sheet->getParentOrThrow()->getIndex($sheet) + 1) << 10;
|
||||
$spContainer->setSpId($spId);
|
||||
|
||||
// keep track of last reducedSpId
|
||||
|
||||
@@ -603,12 +603,9 @@ class Workbook extends BIFFwriter
|
||||
}
|
||||
|
||||
if ($definedName->getLocalOnly()) {
|
||||
/**
|
||||
* local scope.
|
||||
*
|
||||
* @phpstan-ignore-next-line
|
||||
*/
|
||||
$scope = $this->spreadsheet->getIndex($definedName->getScope()) + 1;
|
||||
// local scope
|
||||
$scopeWs = $definedName->getScope();
|
||||
$scope = ($scopeWs === null) ? 0 : ($this->spreadsheet->getIndex($scopeWs) + 1);
|
||||
} else {
|
||||
// global scope
|
||||
$scope = 0;
|
||||
|
||||
@@ -273,7 +273,7 @@ class Worksheet extends BIFFwriter
|
||||
$this->lastColumnIndex = 255;
|
||||
}
|
||||
|
||||
$this->countCellStyleXfs = count($phpSheet->getParent()->getCellStyleXfCollection());
|
||||
$this->countCellStyleXfs = count($phpSheet->getParentOrThrow()->getCellStyleXfCollection());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -288,7 +288,7 @@ class Worksheet extends BIFFwriter
|
||||
|
||||
// Storing selected cells and active sheet because it changes while parsing cells with formulas.
|
||||
$selectedCells = $this->phpSheet->getSelectedCells();
|
||||
$activeSheetIndex = $this->phpSheet->getParent()->getActiveSheetIndex();
|
||||
$activeSheetIndex = $this->phpSheet->getParentOrThrow()->getActiveSheetIndex();
|
||||
|
||||
// Write BOF record
|
||||
$this->storeBof(0x0010);
|
||||
@@ -307,7 +307,7 @@ class Worksheet extends BIFFwriter
|
||||
|
||||
// Column dimensions
|
||||
if (($defaultWidth = $phpSheet->getDefaultColumnDimension()->getWidth()) < 0) {
|
||||
$defaultWidth = \PhpOffice\PhpSpreadsheet\Shared\Font::getDefaultColumnWidthByFont($phpSheet->getParent()->getDefaultStyle()->getFont());
|
||||
$defaultWidth = \PhpOffice\PhpSpreadsheet\Shared\Font::getDefaultColumnWidthByFont($phpSheet->getParentOrThrow()->getDefaultStyle()->getFont());
|
||||
}
|
||||
|
||||
$columnDimensions = $phpSheet->getColumnDimensions();
|
||||
@@ -498,7 +498,7 @@ class Worksheet extends BIFFwriter
|
||||
$this->writeMsoDrawing();
|
||||
|
||||
// Restoring active sheet.
|
||||
$this->phpSheet->getParent()->setActiveSheetIndex($activeSheetIndex);
|
||||
$this->phpSheet->getParentOrThrow()->setActiveSheetIndex($activeSheetIndex);
|
||||
|
||||
// Write WINDOW2 record
|
||||
$this->writeWindow2();
|
||||
@@ -1255,7 +1255,7 @@ class Worksheet extends BIFFwriter
|
||||
$fDspGuts = $this->outlineOn; // 7
|
||||
$fFrozenNoSplit = 0; // 0 - bit
|
||||
// no support in PhpSpreadsheet for selected sheet, therefore sheet is only selected if it is the active sheet
|
||||
$fSelected = ($this->phpSheet === $this->phpSheet->getParent()->getActiveSheet()) ? 1 : 0;
|
||||
$fSelected = ($this->phpSheet === $this->phpSheet->getParentOrThrow()->getActiveSheet()) ? 1 : 0;
|
||||
$fPageBreakPreview = $this->phpSheet->getSheetView()->getView() === SheetView::SHEETVIEW_PAGE_BREAK_PREVIEW;
|
||||
|
||||
$grbit = $fDspFmla;
|
||||
@@ -1677,7 +1677,7 @@ class Worksheet extends BIFFwriter
|
||||
|
||||
// Order of printing pages
|
||||
$fLeftToRight = $this->phpSheet->getPageSetup()->getPageOrder() === PageSetup::PAGEORDER_DOWN_THEN_OVER
|
||||
? 0x1 : 0x0;
|
||||
? 0x0 : 0x1;
|
||||
// Page orientation
|
||||
$fLandscape = ($this->phpSheet->getPageSetup()->getOrientation() == PageSetup::ORIENTATION_LANDSCAPE)
|
||||
? 0x0 : 0x1;
|
||||
|
||||
@@ -455,14 +455,17 @@ class Xlsx extends BaseWriter
|
||||
}
|
||||
|
||||
// Add comment relationship parts
|
||||
if (count($this->spreadSheet->getSheet($i)->getComments()) > 0) {
|
||||
$legacy = $unparsedLoadedData['sheets'][$this->spreadSheet->getSheet($i)->getCodeName()]['legacyDrawing'] ?? null;
|
||||
if (count($this->spreadSheet->getSheet($i)->getComments()) > 0 || $legacy !== null) {
|
||||
// VML Comments relationships
|
||||
$zipContent['xl/drawings/_rels/vmlDrawing' . ($i + 1) . '.vml.rels'] = $this->getWriterPartRels()->writeVMLDrawingRelationships($this->spreadSheet->getSheet($i));
|
||||
|
||||
// VML Comments
|
||||
$zipContent['xl/drawings/vmlDrawing' . ($i + 1) . '.vml'] = $this->getWriterPartComments()->writeVMLComments($this->spreadSheet->getSheet($i));
|
||||
$zipContent['xl/drawings/vmlDrawing' . ($i + 1) . '.vml'] = $legacy ?? $this->getWriterPartComments()->writeVMLComments($this->spreadSheet->getSheet($i));
|
||||
}
|
||||
|
||||
// Comments
|
||||
// Comments
|
||||
if (count($this->spreadSheet->getSheet($i)->getComments()) > 0) {
|
||||
$zipContent['xl/comments' . ($i + 1) . '.xml'] = $this->getWriterPartComments()->writeComments($this->spreadSheet->getSheet($i));
|
||||
|
||||
// Media
|
||||
@@ -477,7 +480,9 @@ class Xlsx extends BaseWriter
|
||||
// Add unparsed relationship parts
|
||||
if (isset($unparsedLoadedData['sheets'][$sheetCodeName]['vmlDrawings'])) {
|
||||
foreach ($unparsedLoadedData['sheets'][$sheetCodeName]['vmlDrawings'] as $vmlDrawing) {
|
||||
$zipContent[$vmlDrawing['filePath']] = $vmlDrawing['content'];
|
||||
if (!isset($zipContent[$vmlDrawing['filePath']])) {
|
||||
$zipContent[$vmlDrawing['filePath']] = $vmlDrawing['content'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1041,11 +1041,12 @@ class Chart extends WriterPart
|
||||
$objWriter->startElement('c:ser');
|
||||
|
||||
$objWriter->startElement('c:idx');
|
||||
$objWriter->writeAttribute('val', (string) ($this->seriesIndex + $plotSeriesIdx));
|
||||
$adder = array_key_exists(0, $plotSeriesOrder) ? $this->seriesIndex : 0;
|
||||
$objWriter->writeAttribute('val', (string) ($adder + $plotSeriesIdx));
|
||||
$objWriter->endElement();
|
||||
|
||||
$objWriter->startElement('c:order');
|
||||
$objWriter->writeAttribute('val', (string) ($this->seriesIndex + $plotSeriesRef));
|
||||
$objWriter->writeAttribute('val', (string) ($adder + $plotSeriesRef));
|
||||
$objWriter->endElement();
|
||||
|
||||
$plotLabel = $plotGroup->getPlotLabelByIndex($plotSeriesIdx);
|
||||
|
||||
@@ -72,7 +72,7 @@ class DefinedNames
|
||||
$local = -1;
|
||||
if ($definedName->getLocalOnly() && $definedName->getScope() !== null) {
|
||||
try {
|
||||
$local = $definedName->getScope()->getParent()->getIndex($definedName->getScope());
|
||||
$local = $definedName->getScope()->getParentOrThrow()->getIndex($definedName->getScope());
|
||||
} catch (Exception $e) {
|
||||
// See issue 2266 - deleting sheet which contains
|
||||
// defined names will cause Exception above.
|
||||
|
||||
@@ -67,7 +67,7 @@ class Drawing extends WriterPart
|
||||
}
|
||||
|
||||
// unparsed AlternateContent
|
||||
$unparsedLoadedData = $worksheet->getParent()->getUnparsedLoadedData();
|
||||
$unparsedLoadedData = $worksheet->getParentOrThrow()->getUnparsedLoadedData();
|
||||
if (isset($unparsedLoadedData['sheets'][$worksheet->getCodeName()]['drawingAlternateContents'])) {
|
||||
foreach ($unparsedLoadedData['sheets'][$worksheet->getCodeName()]['drawingAlternateContents'] as $drawingAlternateContent) {
|
||||
$objWriter->writeRaw($drawingAlternateContent);
|
||||
|
||||
@@ -188,7 +188,7 @@ class Rels extends WriterPart
|
||||
|
||||
// Write drawing relationships?
|
||||
$drawingOriginalIds = [];
|
||||
$unparsedLoadedData = $worksheet->getParent()->getUnparsedLoadedData();
|
||||
$unparsedLoadedData = $worksheet->getParentOrThrow()->getUnparsedLoadedData();
|
||||
if (isset($unparsedLoadedData['sheets'][$worksheet->getCodeName()]['drawingOriginalIds'])) {
|
||||
$drawingOriginalIds = $unparsedLoadedData['sheets'][$worksheet->getCodeName()]['drawingOriginalIds'];
|
||||
}
|
||||
@@ -239,14 +239,16 @@ class Rels extends WriterPart
|
||||
|
||||
// Write comments relationship?
|
||||
$i = 1;
|
||||
if (count($worksheet->getComments()) > 0) {
|
||||
if (count($worksheet->getComments()) > 0 || isset($unparsedLoadedData['sheets'][$worksheet->getCodeName()]['legacyDrawing'])) {
|
||||
$this->writeRelationship(
|
||||
$objWriter,
|
||||
'_comments_vml' . $i,
|
||||
Namespaces::VML,
|
||||
'../drawings/vmlDrawing' . $worksheetId . '.vml'
|
||||
);
|
||||
}
|
||||
|
||||
if (count($worksheet->getComments()) > 0) {
|
||||
$this->writeRelationship(
|
||||
$objWriter,
|
||||
'_comments' . $i,
|
||||
@@ -288,7 +290,7 @@ class Rels extends WriterPart
|
||||
|
||||
private function writeUnparsedRelationship(\PhpOffice\PhpSpreadsheet\Worksheet\Worksheet $worksheet, XMLWriter $objWriter, string $relationship, string $type): void
|
||||
{
|
||||
$unparsedLoadedData = $worksheet->getParent()->getUnparsedLoadedData();
|
||||
$unparsedLoadedData = $worksheet->getParentOrThrow()->getUnparsedLoadedData();
|
||||
if (!isset($unparsedLoadedData['sheets'][$worksheet->getCodeName()][$relationship])) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -138,7 +138,7 @@ class Worksheet extends WriterPart
|
||||
{
|
||||
// sheetPr
|
||||
$objWriter->startElement('sheetPr');
|
||||
if ($worksheet->getParent()->hasMacros()) {
|
||||
if ($worksheet->getParentOrThrow()->hasMacros()) {
|
||||
//if the workbook have macros, we need to have codeName for the sheet
|
||||
if (!$worksheet->hasCodeName()) {
|
||||
$worksheet->setCodeName($worksheet->getTitle());
|
||||
@@ -969,7 +969,7 @@ class Worksheet extends WriterPart
|
||||
}
|
||||
$objWriter->writeAttribute('pageOrder', $worksheet->getPageSetup()->getPageOrder());
|
||||
|
||||
$getUnparsedLoadedData = $worksheet->getParent()->getUnparsedLoadedData();
|
||||
$getUnparsedLoadedData = $worksheet->getParentOrThrow()->getUnparsedLoadedData();
|
||||
if (isset($getUnparsedLoadedData['sheets'][$worksheet->getCodeName()]['pageSetupRelId'])) {
|
||||
$objWriter->writeAttribute('r:id', $getUnparsedLoadedData['sheets'][$worksheet->getCodeName()]['pageSetupRelId']);
|
||||
}
|
||||
@@ -1305,7 +1305,7 @@ class Worksheet extends WriterPart
|
||||
*/
|
||||
private function writeDrawings(XMLWriter $objWriter, PhpspreadsheetWorksheet $worksheet, $includeCharts = false): void
|
||||
{
|
||||
$unparsedLoadedData = $worksheet->getParent()->getUnparsedLoadedData();
|
||||
$unparsedLoadedData = $worksheet->getParentOrThrow()->getUnparsedLoadedData();
|
||||
$hasUnparsedDrawing = isset($unparsedLoadedData['sheets'][$worksheet->getCodeName()]['drawingOriginalIds']);
|
||||
$chartCount = ($includeCharts) ? $worksheet->getChartCollection()->count() : 0;
|
||||
if ($chartCount == 0 && $worksheet->getDrawingCollection()->count() == 0 && !$hasUnparsedDrawing) {
|
||||
@@ -1333,7 +1333,8 @@ class Worksheet extends WriterPart
|
||||
private function writeLegacyDrawing(XMLWriter $objWriter, PhpspreadsheetWorksheet $worksheet): void
|
||||
{
|
||||
// If sheet contains comments, add the relationships
|
||||
if (count($worksheet->getComments()) > 0) {
|
||||
$unparsedLoadedData = $worksheet->getParentOrThrow()->getUnparsedLoadedData();
|
||||
if (count($worksheet->getComments()) > 0 || isset($unparsedLoadedData['sheets'][$worksheet->getCodeName()]['legacyDrawing'])) {
|
||||
$objWriter->startElement('legacyDrawing');
|
||||
$objWriter->writeAttribute('r:id', 'rId_comments_vml1');
|
||||
$objWriter->endElement();
|
||||
@@ -1355,11 +1356,11 @@ class Worksheet extends WriterPart
|
||||
|
||||
private function writeAlternateContent(XMLWriter $objWriter, PhpspreadsheetWorksheet $worksheet): void
|
||||
{
|
||||
if (empty($worksheet->getParent()->getUnparsedLoadedData()['sheets'][$worksheet->getCodeName()]['AlternateContents'])) {
|
||||
if (empty($worksheet->getParentOrThrow()->getUnparsedLoadedData()['sheets'][$worksheet->getCodeName()]['AlternateContents'])) {
|
||||
return;
|
||||
}
|
||||
|
||||
foreach ($worksheet->getParent()->getUnparsedLoadedData()['sheets'][$worksheet->getCodeName()]['AlternateContents'] as $alternateContent) {
|
||||
foreach ($worksheet->getParentOrThrow()->getUnparsedLoadedData()['sheets'][$worksheet->getCodeName()]['AlternateContents'] as $alternateContent) {
|
||||
$objWriter->writeRaw($alternateContent);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user