Code Duplication    Length = 42-46 lines in 3 locations

src/PhpSpreadsheet/Shared/Font.php 3 locations

@@ 586-627 (lines=42) @@
583
    public static function getDefaultRowHeightByFont(\PhpSpreadsheet\Style\Font $font)
584
    {
585
        switch ($font->getName()) {
586
            case 'Arial':
587
                switch ($font->getSize()) {
588
                    case 10:
589
                        // inspection of Arial 10 workbook says 12.75pt ~17px
590
                        $rowHeight = 12.75;
591
                        break;
592
                    case 9:
593
                        // inspection of Arial 9 workbook says 12.00pt ~16px
594
                        $rowHeight = 12;
595
                        break;
596
                    case 8:
597
                        // inspection of Arial 8 workbook says 11.25pt ~15px
598
                        $rowHeight = 11.25;
599
                        break;
600
                    case 7:
601
                        // inspection of Arial 7 workbook says 9.00pt ~12px
602
                        $rowHeight = 9;
603
                        break;
604
                    case 6:
605
                    case 5:
606
                        // inspection of Arial 5,6 workbook says 8.25pt ~11px
607
                        $rowHeight = 8.25;
608
                        break;
609
                    case 4:
610
                        // inspection of Arial 4 workbook says 6.75pt ~9px
611
                        $rowHeight = 6.75;
612
                        break;
613
                    case 3:
614
                        // inspection of Arial 3 workbook says 6.00pt ~8px
615
                        $rowHeight = 6;
616
                        break;
617
                    case 2:
618
                    case 1:
619
                        // inspection of Arial 1,2 workbook says 5.25pt ~7px
620
                        $rowHeight = 5.25;
621
                        break;
622
                    default:
623
                        // use Arial 10 workbook as an approximation, extrapolation
624
                        $rowHeight = 12.75 * $font->getSize() / 10;
625
                        break;
626
                }
627
                break;
628
629
            case 'Calibri':
630
                switch ($font->getSize()) {
@@ 629-674 (lines=46) @@
626
                }
627
                break;
628
629
            case 'Calibri':
630
                switch ($font->getSize()) {
631
                    case 11:
632
                        // inspection of Calibri 11 workbook says 15.00pt ~20px
633
                        $rowHeight = 15;
634
                        break;
635
                    case 10:
636
                        // inspection of Calibri 10 workbook says 12.75pt ~17px
637
                        $rowHeight = 12.75;
638
                        break;
639
                    case 9:
640
                        // inspection of Calibri 9 workbook says 12.00pt ~16px
641
                        $rowHeight = 12;
642
                        break;
643
                    case 8:
644
                        // inspection of Calibri 8 workbook says 11.25pt ~15px
645
                        $rowHeight = 11.25;
646
                        break;
647
                    case 7:
648
                        // inspection of Calibri 7 workbook says 9.00pt ~12px
649
                        $rowHeight = 9;
650
                        break;
651
                    case 6:
652
                    case 5:
653
                        // inspection of Calibri 5,6 workbook says 8.25pt ~11px
654
                        $rowHeight = 8.25;
655
                        break;
656
                    case 4:
657
                        // inspection of Calibri 4 workbook says 6.75pt ~9px
658
                        $rowHeight = 6.75;
659
                        break;
660
                    case 3:
661
                        // inspection of Calibri 3 workbook says 6.00pt ~8px
662
                        $rowHeight = 6.00;
663
                        break;
664
                    case 2:
665
                    case 1:
666
                        // inspection of Calibri 1,2 workbook says 5.25pt ~7px
667
                        $rowHeight = 5.25;
668
                        break;
669
                    default:
670
                        // use Calibri 11 workbook as an approximation, extrapolation
671
                        $rowHeight = 15 * $font->getSize() / 11;
672
                        break;
673
                }
674
                break;
675
676
            case 'Verdana':
677
                switch ($font->getSize()) {
@@ 676-717 (lines=42) @@
673
                }
674
                break;
675
676
            case 'Verdana':
677
                switch ($font->getSize()) {
678
                    case 10:
679
                        // inspection of Verdana 10 workbook says 12.75pt ~17px
680
                        $rowHeight = 12.75;
681
                        break;
682
                    case 9:
683
                        // inspection of Verdana 9 workbook says 11.25pt ~15px
684
                        $rowHeight = 11.25;
685
                        break;
686
                    case 8:
687
                        // inspection of Verdana 8 workbook says 10.50pt ~14px
688
                        $rowHeight = 10.50;
689
                        break;
690
                    case 7:
691
                        // inspection of Verdana 7 workbook says 9.00pt ~12px
692
                        $rowHeight = 9.00;
693
                        break;
694
                    case 6:
695
                    case 5:
696
                        // inspection of Verdana 5,6 workbook says 8.25pt ~11px
697
                        $rowHeight = 8.25;
698
                        break;
699
                    case 4:
700
                        // inspection of Verdana 4 workbook says 6.75pt ~9px
701
                        $rowHeight = 6.75;
702
                        break;
703
                    case 3:
704
                        // inspection of Verdana 3 workbook says 6.00pt ~8px
705
                        $rowHeight = 6;
706
                        break;
707
                    case 2:
708
                    case 1:
709
                        // inspection of Verdana 1,2 workbook says 5.25pt ~7px
710
                        $rowHeight = 5.25;
711
                        break;
712
                    default:
713
                        // use Verdana 10 workbook as an approximation, extrapolation
714
                        $rowHeight = 12.75 * $font->getSize() / 10;
715
                        break;
716
                }
717
                break;
718
            default:
719
                // just use Calibri as an approximation
720
                $rowHeight = 15 * $font->getSize() / 11;