Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.
Common duplication problems, and corresponding solutions are:
Complex classes like Worksheet often do a lot of different things. To break such a class down, we need to identify a cohesive component within that class. A common approach to find such a component is to look for fields/methods that share the same prefixes, or suffixes. You can also have a look at the cohesion graph to spot any un-connected, or weakly-connected components.
Once you have determined the fields that belong together, you can apply the Extract Class refactoring. If the component makes sense as a sub-class, Extract Subclass is also a candidate, and is often faster.
While breaking up the class, it is a good idea to analyze how other classes use Worksheet, and based on these observations, apply Extract Interface, too.
1 | <?php |
||
35 | class Worksheet extends WriterPart |
||
36 | { |
||
37 | /** |
||
38 | * Write worksheet to XML format. |
||
39 | * |
||
40 | * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet |
||
41 | * @param string[] $pStringTable |
||
42 | * @param bool $includeCharts Flag indicating if we should write charts |
||
43 | * |
||
44 | * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception |
||
45 | * |
||
46 | * @return string XML Output |
||
47 | */ |
||
48 | 55 | public function writeWorksheet($pSheet = null, $pStringTable = null, $includeCharts = false) |
|
138 | |||
139 | /** |
||
140 | * Write SheetPr. |
||
141 | * |
||
142 | * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer |
||
143 | * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet |
||
144 | * |
||
145 | * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception |
||
146 | */ |
||
147 | 55 | private function writeSheetPr(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null) |
|
186 | |||
187 | /** |
||
188 | * Write Dimension. |
||
189 | * |
||
190 | * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer |
||
191 | * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet |
||
192 | * |
||
193 | * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception |
||
194 | */ |
||
195 | 55 | private function writeDimension(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null) |
|
202 | |||
203 | /** |
||
204 | * Write SheetViews. |
||
205 | * |
||
206 | * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer |
||
207 | * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet |
||
208 | * |
||
209 | * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception |
||
210 | */ |
||
211 | 55 | private function writeSheetViews(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null) |
|
315 | |||
316 | /** |
||
317 | * Write SheetFormatPr. |
||
318 | * |
||
319 | * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer |
||
320 | * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet |
||
321 | * |
||
322 | * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception |
||
323 | */ |
||
324 | 55 | private function writeSheetFormatPr(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null) |
|
325 | { |
||
326 | // sheetFormatPr |
||
327 | 55 | $objWriter->startElement('sheetFormatPr'); |
|
328 | |||
329 | // Default row height |
||
330 | 55 | if ($pSheet->getDefaultRowDimension()->getRowHeight() >= 0) { |
|
331 | 2 | $objWriter->writeAttribute('customHeight', 'true'); |
|
332 | 2 | $objWriter->writeAttribute('defaultRowHeight', \PhpOffice\PhpSpreadsheet\Shared\StringHelper::formatNumber($pSheet->getDefaultRowDimension()->getRowHeight())); |
|
333 | } else { |
||
334 | 53 | $objWriter->writeAttribute('defaultRowHeight', '14.4'); |
|
335 | } |
||
336 | |||
337 | // Set Zero Height row |
||
338 | 55 | if ((string) $pSheet->getDefaultRowDimension()->getZeroHeight() == '1' || |
|
339 | 55 | strtolower((string) $pSheet->getDefaultRowDimension()->getZeroHeight()) == 'true') { |
|
340 | $objWriter->writeAttribute('zeroHeight', '1'); |
||
341 | } |
||
342 | |||
343 | // Default column width |
||
344 | 55 | if ($pSheet->getDefaultColumnDimension()->getWidth() >= 0) { |
|
345 | $objWriter->writeAttribute('defaultColWidth', \PhpOffice\PhpSpreadsheet\Shared\StringHelper::formatNumber($pSheet->getDefaultColumnDimension()->getWidth())); |
||
346 | } |
||
347 | |||
348 | // Outline level - row |
||
349 | 55 | $outlineLevelRow = 0; |
|
350 | 55 | foreach ($pSheet->getRowDimensions() as $dimension) { |
|
351 | 11 | if ($dimension->getOutlineLevel() > $outlineLevelRow) { |
|
352 | $outlineLevelRow = $dimension->getOutlineLevel(); |
||
353 | } |
||
354 | } |
||
355 | 55 | $objWriter->writeAttribute('outlineLevelRow', (int) $outlineLevelRow); |
|
356 | |||
357 | // Outline level - column |
||
358 | 55 | $outlineLevelCol = 0; |
|
359 | 55 | foreach ($pSheet->getColumnDimensions() as $dimension) { |
|
360 | 21 | if ($dimension->getOutlineLevel() > $outlineLevelCol) { |
|
361 | 1 | $outlineLevelCol = $dimension->getOutlineLevel(); |
|
362 | } |
||
363 | } |
||
364 | 55 | $objWriter->writeAttribute('outlineLevelCol', (int) $outlineLevelCol); |
|
365 | |||
366 | 55 | $objWriter->endElement(); |
|
367 | 55 | } |
|
368 | |||
369 | /** |
||
370 | * Write Cols. |
||
371 | * |
||
372 | * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer |
||
373 | * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet |
||
374 | * |
||
375 | * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception |
||
376 | */ |
||
377 | 55 | private function writeCols(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null) |
|
434 | |||
435 | /** |
||
436 | * Write SheetProtection. |
||
437 | * |
||
438 | * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer |
||
439 | * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet |
||
440 | * |
||
441 | * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception |
||
442 | */ |
||
443 | 55 | private function writeSheetProtection(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null) |
|
470 | |||
471 | /** |
||
472 | * Write ConditionalFormatting. |
||
473 | * |
||
474 | * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer |
||
475 | * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet |
||
476 | * |
||
477 | * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception |
||
478 | */ |
||
479 | 55 | private function writeConditionalFormatting(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null) |
|
480 | { |
||
481 | // Conditional id |
||
482 | 55 | $id = 1; |
|
483 | |||
484 | // Loop through styles in the current worksheet |
||
485 | 55 | foreach ($pSheet->getConditionalStylesCollection() as $cellCoordinate => $conditionalStyles) { |
|
486 | 2 | foreach ($conditionalStyles as $conditional) { |
|
487 | // WHY was this again? |
||
488 | // if ($this->getParentWriter()->getStylesConditionalHashTable()->getIndexForHashCode($conditional->getHashCode()) == '') { |
||
489 | // continue; |
||
490 | // } |
||
491 | 2 | if ($conditional->getConditionType() != \PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_NONE) { |
|
492 | // conditionalFormatting |
||
493 | 2 | $objWriter->startElement('conditionalFormatting'); |
|
494 | 2 | $objWriter->writeAttribute('sqref', $cellCoordinate); |
|
495 | |||
496 | // cfRule |
||
497 | 2 | $objWriter->startElement('cfRule'); |
|
498 | 2 | $objWriter->writeAttribute('type', $conditional->getConditionType()); |
|
499 | 2 | $objWriter->writeAttribute('dxfId', $this->getParentWriter()->getStylesConditionalHashTable()->getIndexForHashCode($conditional->getHashCode())); |
|
500 | 2 | $objWriter->writeAttribute('priority', $id++); |
|
501 | |||
502 | 2 | if (($conditional->getConditionType() == \PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CELLIS || $conditional->getConditionType() == \PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CONTAINSTEXT) |
|
503 | 2 | && $conditional->getOperatorType() != \PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_NONE) { |
|
504 | 2 | $objWriter->writeAttribute('operator', $conditional->getOperatorType()); |
|
505 | } |
||
506 | |||
507 | 2 | if ($conditional->getConditionType() == \PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CONTAINSTEXT |
|
508 | && !is_null($conditional->getText())) { |
||
509 | $objWriter->writeAttribute('text', $conditional->getText()); |
||
510 | } |
||
511 | |||
512 | 2 | if ($conditional->getConditionType() == \PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CONTAINSTEXT |
|
513 | && $conditional->getOperatorType() == \PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_CONTAINSTEXT |
||
514 | && !is_null($conditional->getText())) { |
||
515 | $objWriter->writeElement('formula', 'NOT(ISERROR(SEARCH("' . $conditional->getText() . '",' . $cellCoordinate . ')))'); |
||
516 | 2 | View Code Duplication | } elseif ($conditional->getConditionType() == \PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CONTAINSTEXT |
517 | && $conditional->getOperatorType() == \PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_BEGINSWITH |
||
518 | && !is_null($conditional->getText())) { |
||
519 | $objWriter->writeElement('formula', 'LEFT(' . $cellCoordinate . ',' . strlen($conditional->getText()) . ')="' . $conditional->getText() . '"'); |
||
520 | 2 | } elseif ($conditional->getConditionType() == \PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CONTAINSTEXT |
|
521 | && $conditional->getOperatorType() == \PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_ENDSWITH |
||
522 | && !is_null($conditional->getText())) { |
||
523 | $objWriter->writeElement('formula', 'RIGHT(' . $cellCoordinate . ',' . strlen($conditional->getText()) . ')="' . $conditional->getText() . '"'); |
||
524 | 2 | View Code Duplication | } elseif ($conditional->getConditionType() == \PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CONTAINSTEXT |
525 | && $conditional->getOperatorType() == \PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_NOTCONTAINS |
||
526 | && !is_null($conditional->getText())) { |
||
527 | $objWriter->writeElement('formula', 'ISERROR(SEARCH("' . $conditional->getText() . '",' . $cellCoordinate . '))'); |
||
528 | 2 | } elseif ($conditional->getConditionType() == \PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CELLIS |
|
529 | || $conditional->getConditionType() == \PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CONTAINSTEXT |
||
530 | || $conditional->getConditionType() == \PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_EXPRESSION) { |
||
531 | 2 | foreach ($conditional->getConditions() as $formula) { |
|
532 | // Formula |
||
533 | 2 | $objWriter->writeElement('formula', $formula); |
|
534 | } |
||
535 | } |
||
536 | |||
537 | 2 | $objWriter->endElement(); |
|
538 | |||
539 | 2 | $objWriter->endElement(); |
|
540 | } |
||
541 | } |
||
542 | } |
||
543 | 55 | } |
|
544 | |||
545 | /** |
||
546 | * Write DataValidations. |
||
547 | * |
||
548 | * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer |
||
549 | * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet |
||
550 | * |
||
551 | * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception |
||
552 | */ |
||
553 | 55 | private function writeDataValidations(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null) |
|
554 | { |
||
555 | // Datavalidation collection |
||
556 | 55 | $dataValidationCollection = $pSheet->getDataValidationCollection(); |
|
557 | |||
558 | // Write data validations? |
||
559 | 55 | if (!empty($dataValidationCollection)) { |
|
560 | 2 | $objWriter->startElement('dataValidations'); |
|
561 | 2 | $objWriter->writeAttribute('count', count($dataValidationCollection)); |
|
562 | |||
563 | 2 | foreach ($dataValidationCollection as $coordinate => $dv) { |
|
564 | 2 | $objWriter->startElement('dataValidation'); |
|
565 | |||
566 | 2 | if ($dv->getType() != '') { |
|
567 | 2 | $objWriter->writeAttribute('type', $dv->getType()); |
|
568 | } |
||
569 | |||
570 | 2 | if ($dv->getErrorStyle() != '') { |
|
571 | 2 | $objWriter->writeAttribute('errorStyle', $dv->getErrorStyle()); |
|
572 | } |
||
573 | |||
574 | 2 | if ($dv->getOperator() != '') { |
|
575 | 2 | $objWriter->writeAttribute('operator', $dv->getOperator()); |
|
576 | } |
||
577 | |||
578 | 2 | $objWriter->writeAttribute('allowBlank', ($dv->getAllowBlank() ? '1' : '0')); |
|
579 | 2 | $objWriter->writeAttribute('showDropDown', (!$dv->getShowDropDown() ? '1' : '0')); |
|
580 | 2 | $objWriter->writeAttribute('showInputMessage', ($dv->getShowInputMessage() ? '1' : '0')); |
|
581 | 2 | $objWriter->writeAttribute('showErrorMessage', ($dv->getShowErrorMessage() ? '1' : '0')); |
|
582 | |||
583 | 2 | if ($dv->getErrorTitle() !== '') { |
|
584 | 2 | $objWriter->writeAttribute('errorTitle', $dv->getErrorTitle()); |
|
585 | } |
||
586 | 2 | if ($dv->getError() !== '') { |
|
587 | 2 | $objWriter->writeAttribute('error', $dv->getError()); |
|
588 | } |
||
589 | 2 | if ($dv->getPromptTitle() !== '') { |
|
590 | 2 | $objWriter->writeAttribute('promptTitle', $dv->getPromptTitle()); |
|
591 | } |
||
592 | 2 | if ($dv->getPrompt() !== '') { |
|
593 | 2 | $objWriter->writeAttribute('prompt', $dv->getPrompt()); |
|
594 | } |
||
595 | |||
596 | 2 | $objWriter->writeAttribute('sqref', $coordinate); |
|
597 | |||
598 | 2 | if ($dv->getFormula1() !== '') { |
|
599 | 2 | $objWriter->writeElement('formula1', $dv->getFormula1()); |
|
600 | } |
||
601 | 2 | if ($dv->getFormula2() !== '') { |
|
602 | 1 | $objWriter->writeElement('formula2', $dv->getFormula2()); |
|
603 | } |
||
604 | |||
605 | 2 | $objWriter->endElement(); |
|
606 | } |
||
607 | |||
608 | 2 | $objWriter->endElement(); |
|
609 | } |
||
610 | 55 | } |
|
611 | |||
612 | /** |
||
613 | * Write Hyperlinks. |
||
614 | * |
||
615 | * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer |
||
616 | * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet |
||
617 | * |
||
618 | * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception |
||
619 | */ |
||
620 | 55 | private function writeHyperlinks(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null) |
|
653 | |||
654 | /** |
||
655 | * Write ProtectedRanges. |
||
656 | * |
||
657 | * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer |
||
658 | * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet |
||
659 | * |
||
660 | * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception |
||
661 | */ |
||
662 | 55 | private function writeProtectedRanges(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null) |
|
683 | |||
684 | /** |
||
685 | * Write MergeCells. |
||
686 | * |
||
687 | * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer |
||
688 | * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet |
||
689 | * |
||
690 | * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception |
||
691 | */ |
||
692 | 55 | private function writeMergeCells(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null) |
|
709 | |||
710 | /** |
||
711 | * Write PrintOptions. |
||
712 | * |
||
713 | * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer |
||
714 | * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet |
||
715 | * |
||
716 | * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception |
||
717 | */ |
||
718 | 55 | private function writePrintOptions(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null) |
|
736 | |||
737 | /** |
||
738 | * Write PageMargins. |
||
739 | * |
||
740 | * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer |
||
741 | * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet |
||
742 | * |
||
743 | * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception |
||
744 | */ |
||
745 | 55 | private function writePageMargins(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null) |
|
757 | |||
758 | /** |
||
759 | * Write AutoFilter. |
||
760 | * |
||
761 | * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer |
||
762 | * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet |
||
763 | * |
||
764 | * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception |
||
765 | */ |
||
766 | 55 | private function writeAutoFilter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null) |
|
851 | |||
852 | /** |
||
853 | * Write PageSetup. |
||
854 | * |
||
855 | * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer |
||
856 | * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet |
||
857 | * |
||
858 | * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception |
||
859 | */ |
||
860 | 55 | private function writePageSetup(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null) |
|
887 | |||
888 | /** |
||
889 | * Write Header / Footer. |
||
890 | * |
||
891 | * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer |
||
892 | * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet |
||
893 | * |
||
894 | * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception |
||
895 | */ |
||
896 | 55 | private function writeHeaderFooter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null) |
|
913 | |||
914 | /** |
||
915 | * Write Breaks. |
||
916 | * |
||
917 | * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer |
||
918 | * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet |
||
919 | * |
||
920 | * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception |
||
921 | */ |
||
922 | 55 | private function writeBreaks(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null) |
|
923 | { |
||
924 | // Get row and column breaks |
||
925 | 55 | $aRowBreaks = []; |
|
926 | 55 | $aColumnBreaks = []; |
|
927 | 55 | foreach ($pSheet->getBreaks() as $cell => $breakType) { |
|
928 | 1 | if ($breakType == \PhpOffice\PhpSpreadsheet\Worksheet::BREAK_ROW) { |
|
929 | 1 | $aRowBreaks[] = $cell; |
|
930 | } elseif ($breakType == \PhpOffice\PhpSpreadsheet\Worksheet::BREAK_COLUMN) { |
||
931 | $aColumnBreaks[] = $cell; |
||
932 | } |
||
933 | } |
||
934 | |||
935 | // rowBreaks |
||
936 | 55 | View Code Duplication | if (!empty($aRowBreaks)) { |
937 | 1 | $objWriter->startElement('rowBreaks'); |
|
938 | 1 | $objWriter->writeAttribute('count', count($aRowBreaks)); |
|
939 | 1 | $objWriter->writeAttribute('manualBreakCount', count($aRowBreaks)); |
|
940 | |||
941 | 1 | foreach ($aRowBreaks as $cell) { |
|
942 | 1 | $coords = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($cell); |
|
943 | |||
944 | 1 | $objWriter->startElement('brk'); |
|
945 | 1 | $objWriter->writeAttribute('id', $coords[1]); |
|
946 | 1 | $objWriter->writeAttribute('man', '1'); |
|
947 | 1 | $objWriter->endElement(); |
|
948 | } |
||
949 | |||
950 | 1 | $objWriter->endElement(); |
|
951 | } |
||
952 | |||
953 | // Second, write column breaks |
||
954 | 55 | View Code Duplication | if (!empty($aColumnBreaks)) { |
955 | $objWriter->startElement('colBreaks'); |
||
956 | $objWriter->writeAttribute('count', count($aColumnBreaks)); |
||
957 | $objWriter->writeAttribute('manualBreakCount', count($aColumnBreaks)); |
||
958 | |||
959 | foreach ($aColumnBreaks as $cell) { |
||
960 | $coords = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($cell); |
||
961 | |||
962 | $objWriter->startElement('brk'); |
||
963 | $objWriter->writeAttribute('id', \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($coords[0]) - 1); |
||
964 | $objWriter->writeAttribute('man', '1'); |
||
965 | $objWriter->endElement(); |
||
966 | } |
||
967 | |||
968 | $objWriter->endElement(); |
||
969 | } |
||
970 | 55 | } |
|
971 | |||
972 | /** |
||
973 | * Write SheetData. |
||
974 | * |
||
975 | * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer |
||
976 | * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet |
||
977 | * @param string[] $pStringTable String table |
||
978 | * |
||
979 | * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception |
||
980 | */ |
||
981 | 55 | private function writeSheetData(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null, $pStringTable = null) |
|
1062 | |||
1063 | /** |
||
1064 | * Write Cell. |
||
1065 | * |
||
1066 | * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer |
||
1067 | * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet |
||
1068 | * @param \PhpOffice\PhpSpreadsheet\Cell $pCellAddress Cell Address |
||
1069 | * @param string[] $pStringTable String table |
||
1070 | * @param string[] $pFlippedStringTable String table (flipped), for faster index searching |
||
1071 | * |
||
1072 | * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception |
||
1073 | */ |
||
1074 | 55 | private function writeCell(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null, $pCellAddress = null, $pStringTable = null, $pFlippedStringTable = null) |
|
1182 | |||
1183 | /** |
||
1184 | * Write Drawings. |
||
1185 | * |
||
1186 | * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer |
||
1187 | * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet |
||
1188 | * @param bool $includeCharts Flag indicating if we should include drawing details for charts |
||
1189 | * |
||
1190 | * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception |
||
1191 | */ |
||
1192 | 55 | private function writeDrawings(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null, $includeCharts = false) |
|
1203 | |||
1204 | /** |
||
1205 | * Write LegacyDrawing. |
||
1206 | * |
||
1207 | * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer |
||
1208 | * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet |
||
1209 | * |
||
1210 | * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception |
||
1211 | */ |
||
1212 | 55 | View Code Duplication | private function writeLegacyDrawing(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null) |
1221 | |||
1222 | /** |
||
1223 | * Write LegacyDrawingHF. |
||
1224 | * |
||
1225 | * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer |
||
1226 | * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet |
||
1227 | * |
||
1228 | * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception |
||
1229 | */ |
||
1230 | 55 | View Code Duplication | private function writeLegacyDrawingHF(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null) |
1239 | } |
||
1240 |
This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.
Both the
$myVar
assignment in line 1 and the$higher
assignment in line 2 are dead. The first because$myVar
is never used and the second because$higher
is always overwritten for every possible time line.