Code Duplication    Length = 173-173 lines in 3 locations

src/PhpSpreadsheet/Writer/Xls/Worksheet.php 3 locations

@@ 3216-3388 (lines=173) @@
3213
            // Not used (3)
3214
            $dataBlockFont .= pack('vC', 0x0000, 0x00);
3215
            // Font color index
3216
            switch ($conditional->getStyle()->getFont()->getColor()->getRGB()) {
3217
                case '000000':
3218
                    $colorIdx = 0x08;
3219
                    break;
3220
                case 'FFFFFF':
3221
                    $colorIdx = 0x09;
3222
                    break;
3223
                case 'FF0000':
3224
                    $colorIdx = 0x0A;
3225
                    break;
3226
                case '00FF00':
3227
                    $colorIdx = 0x0B;
3228
                    break;
3229
                case '0000FF':
3230
                    $colorIdx = 0x0C;
3231
                    break;
3232
                case 'FFFF00':
3233
                    $colorIdx = 0x0D;
3234
                    break;
3235
                case 'FF00FF':
3236
                    $colorIdx = 0x0E;
3237
                    break;
3238
                case '00FFFF':
3239
                    $colorIdx = 0x0F;
3240
                    break;
3241
                case '800000':
3242
                    $colorIdx = 0x10;
3243
                    break;
3244
                case '008000':
3245
                    $colorIdx = 0x11;
3246
                    break;
3247
                case '000080':
3248
                    $colorIdx = 0x12;
3249
                    break;
3250
                case '808000':
3251
                    $colorIdx = 0x13;
3252
                    break;
3253
                case '800080':
3254
                    $colorIdx = 0x14;
3255
                    break;
3256
                case '008080':
3257
                    $colorIdx = 0x15;
3258
                    break;
3259
                case 'C0C0C0':
3260
                    $colorIdx = 0x16;
3261
                    break;
3262
                case '808080':
3263
                    $colorIdx = 0x17;
3264
                    break;
3265
                case '9999FF':
3266
                    $colorIdx = 0x18;
3267
                    break;
3268
                case '993366':
3269
                    $colorIdx = 0x19;
3270
                    break;
3271
                case 'FFFFCC':
3272
                    $colorIdx = 0x1A;
3273
                    break;
3274
                case 'CCFFFF':
3275
                    $colorIdx = 0x1B;
3276
                    break;
3277
                case '660066':
3278
                    $colorIdx = 0x1C;
3279
                    break;
3280
                case 'FF8080':
3281
                    $colorIdx = 0x1D;
3282
                    break;
3283
                case '0066CC':
3284
                    $colorIdx = 0x1E;
3285
                    break;
3286
                case 'CCCCFF':
3287
                    $colorIdx = 0x1F;
3288
                    break;
3289
                case '000080':
3290
                    $colorIdx = 0x20;
3291
                    break;
3292
                case 'FF00FF':
3293
                    $colorIdx = 0x21;
3294
                    break;
3295
                case 'FFFF00':
3296
                    $colorIdx = 0x22;
3297
                    break;
3298
                case '00FFFF':
3299
                    $colorIdx = 0x23;
3300
                    break;
3301
                case '800080':
3302
                    $colorIdx = 0x24;
3303
                    break;
3304
                case '800000':
3305
                    $colorIdx = 0x25;
3306
                    break;
3307
                case '008080':
3308
                    $colorIdx = 0x26;
3309
                    break;
3310
                case '0000FF':
3311
                    $colorIdx = 0x27;
3312
                    break;
3313
                case '00CCFF':
3314
                    $colorIdx = 0x28;
3315
                    break;
3316
                case 'CCFFFF':
3317
                    $colorIdx = 0x29;
3318
                    break;
3319
                case 'CCFFCC':
3320
                    $colorIdx = 0x2A;
3321
                    break;
3322
                case 'FFFF99':
3323
                    $colorIdx = 0x2B;
3324
                    break;
3325
                case '99CCFF':
3326
                    $colorIdx = 0x2C;
3327
                    break;
3328
                case 'FF99CC':
3329
                    $colorIdx = 0x2D;
3330
                    break;
3331
                case 'CC99FF':
3332
                    $colorIdx = 0x2E;
3333
                    break;
3334
                case 'FFCC99':
3335
                    $colorIdx = 0x2F;
3336
                    break;
3337
                case '3366FF':
3338
                    $colorIdx = 0x30;
3339
                    break;
3340
                case '33CCCC':
3341
                    $colorIdx = 0x31;
3342
                    break;
3343
                case '99CC00':
3344
                    $colorIdx = 0x32;
3345
                    break;
3346
                case 'FFCC00':
3347
                    $colorIdx = 0x33;
3348
                    break;
3349
                case 'FF9900':
3350
                    $colorIdx = 0x34;
3351
                    break;
3352
                case 'FF6600':
3353
                    $colorIdx = 0x35;
3354
                    break;
3355
                case '666699':
3356
                    $colorIdx = 0x36;
3357
                    break;
3358
                case '969696':
3359
                    $colorIdx = 0x37;
3360
                    break;
3361
                case '003366':
3362
                    $colorIdx = 0x38;
3363
                    break;
3364
                case '339966':
3365
                    $colorIdx = 0x39;
3366
                    break;
3367
                case '003300':
3368
                    $colorIdx = 0x3A;
3369
                    break;
3370
                case '333300':
3371
                    $colorIdx = 0x3B;
3372
                    break;
3373
                case '993300':
3374
                    $colorIdx = 0x3C;
3375
                    break;
3376
                case '993366':
3377
                    $colorIdx = 0x3D;
3378
                    break;
3379
                case '333399':
3380
                    $colorIdx = 0x3E;
3381
                    break;
3382
                case '333333':
3383
                    $colorIdx = 0x3F;
3384
                    break;
3385
                default:
3386
                    $colorIdx = 0x00;
3387
                    break;
3388
            }
3389
            $dataBlockFont .= pack('V', $colorIdx);
3390
            // Not used (4)
3391
            $dataBlockFont .= pack('V', 0x00000000);
@@ 3779-3951 (lines=173) @@
3776
                    break;
3777
            }
3778
            // Color
3779
            switch ($conditional->getStyle()->getFill()->getStartColor()->getRGB()) {
3780
                case '000000':
3781
                    $colorIdxBg = 0x08;
3782
                    break;
3783
                case 'FFFFFF':
3784
                    $colorIdxBg = 0x09;
3785
                    break;
3786
                case 'FF0000':
3787
                    $colorIdxBg = 0x0A;
3788
                    break;
3789
                case '00FF00':
3790
                    $colorIdxBg = 0x0B;
3791
                    break;
3792
                case '0000FF':
3793
                    $colorIdxBg = 0x0C;
3794
                    break;
3795
                case 'FFFF00':
3796
                    $colorIdxBg = 0x0D;
3797
                    break;
3798
                case 'FF00FF':
3799
                    $colorIdxBg = 0x0E;
3800
                    break;
3801
                case '00FFFF':
3802
                    $colorIdxBg = 0x0F;
3803
                    break;
3804
                case '800000':
3805
                    $colorIdxBg = 0x10;
3806
                    break;
3807
                case '008000':
3808
                    $colorIdxBg = 0x11;
3809
                    break;
3810
                case '000080':
3811
                    $colorIdxBg = 0x12;
3812
                    break;
3813
                case '808000':
3814
                    $colorIdxBg = 0x13;
3815
                    break;
3816
                case '800080':
3817
                    $colorIdxBg = 0x14;
3818
                    break;
3819
                case '008080':
3820
                    $colorIdxBg = 0x15;
3821
                    break;
3822
                case 'C0C0C0':
3823
                    $colorIdxBg = 0x16;
3824
                    break;
3825
                case '808080':
3826
                    $colorIdxBg = 0x17;
3827
                    break;
3828
                case '9999FF':
3829
                    $colorIdxBg = 0x18;
3830
                    break;
3831
                case '993366':
3832
                    $colorIdxBg = 0x19;
3833
                    break;
3834
                case 'FFFFCC':
3835
                    $colorIdxBg = 0x1A;
3836
                    break;
3837
                case 'CCFFFF':
3838
                    $colorIdxBg = 0x1B;
3839
                    break;
3840
                case '660066':
3841
                    $colorIdxBg = 0x1C;
3842
                    break;
3843
                case 'FF8080':
3844
                    $colorIdxBg = 0x1D;
3845
                    break;
3846
                case '0066CC':
3847
                    $colorIdxBg = 0x1E;
3848
                    break;
3849
                case 'CCCCFF':
3850
                    $colorIdxBg = 0x1F;
3851
                    break;
3852
                case '000080':
3853
                    $colorIdxBg = 0x20;
3854
                    break;
3855
                case 'FF00FF':
3856
                    $colorIdxBg = 0x21;
3857
                    break;
3858
                case 'FFFF00':
3859
                    $colorIdxBg = 0x22;
3860
                    break;
3861
                case '00FFFF':
3862
                    $colorIdxBg = 0x23;
3863
                    break;
3864
                case '800080':
3865
                    $colorIdxBg = 0x24;
3866
                    break;
3867
                case '800000':
3868
                    $colorIdxBg = 0x25;
3869
                    break;
3870
                case '008080':
3871
                    $colorIdxBg = 0x26;
3872
                    break;
3873
                case '0000FF':
3874
                    $colorIdxBg = 0x27;
3875
                    break;
3876
                case '00CCFF':
3877
                    $colorIdxBg = 0x28;
3878
                    break;
3879
                case 'CCFFFF':
3880
                    $colorIdxBg = 0x29;
3881
                    break;
3882
                case 'CCFFCC':
3883
                    $colorIdxBg = 0x2A;
3884
                    break;
3885
                case 'FFFF99':
3886
                    $colorIdxBg = 0x2B;
3887
                    break;
3888
                case '99CCFF':
3889
                    $colorIdxBg = 0x2C;
3890
                    break;
3891
                case 'FF99CC':
3892
                    $colorIdxBg = 0x2D;
3893
                    break;
3894
                case 'CC99FF':
3895
                    $colorIdxBg = 0x2E;
3896
                    break;
3897
                case 'FFCC99':
3898
                    $colorIdxBg = 0x2F;
3899
                    break;
3900
                case '3366FF':
3901
                    $colorIdxBg = 0x30;
3902
                    break;
3903
                case '33CCCC':
3904
                    $colorIdxBg = 0x31;
3905
                    break;
3906
                case '99CC00':
3907
                    $colorIdxBg = 0x32;
3908
                    break;
3909
                case 'FFCC00':
3910
                    $colorIdxBg = 0x33;
3911
                    break;
3912
                case 'FF9900':
3913
                    $colorIdxBg = 0x34;
3914
                    break;
3915
                case 'FF6600':
3916
                    $colorIdxBg = 0x35;
3917
                    break;
3918
                case '666699':
3919
                    $colorIdxBg = 0x36;
3920
                    break;
3921
                case '969696':
3922
                    $colorIdxBg = 0x37;
3923
                    break;
3924
                case '003366':
3925
                    $colorIdxBg = 0x38;
3926
                    break;
3927
                case '339966':
3928
                    $colorIdxBg = 0x39;
3929
                    break;
3930
                case '003300':
3931
                    $colorIdxBg = 0x3A;
3932
                    break;
3933
                case '333300':
3934
                    $colorIdxBg = 0x3B;
3935
                    break;
3936
                case '993300':
3937
                    $colorIdxBg = 0x3C;
3938
                    break;
3939
                case '993366':
3940
                    $colorIdxBg = 0x3D;
3941
                    break;
3942
                case '333399':
3943
                    $colorIdxBg = 0x3E;
3944
                    break;
3945
                case '333333':
3946
                    $colorIdxBg = 0x3F;
3947
                    break;
3948
                default:
3949
                          $colorIdxBg = 0x41;
3950
                    break;
3951
            }
3952
            // Fg Color
3953
            switch ($conditional->getStyle()->getFill()->getEndColor()->getRGB()) {
3954
                case '000000':
@@ 3953-4125 (lines=173) @@
3950
                    break;
3951
            }
3952
            // Fg Color
3953
            switch ($conditional->getStyle()->getFill()->getEndColor()->getRGB()) {
3954
                case '000000':
3955
                    $colorIdxFg = 0x08;
3956
                    break;
3957
                case 'FFFFFF':
3958
                    $colorIdxFg = 0x09;
3959
                    break;
3960
                case 'FF0000':
3961
                    $colorIdxFg = 0x0A;
3962
                    break;
3963
                case '00FF00':
3964
                    $colorIdxFg = 0x0B;
3965
                    break;
3966
                case '0000FF':
3967
                    $colorIdxFg = 0x0C;
3968
                    break;
3969
                case 'FFFF00':
3970
                    $colorIdxFg = 0x0D;
3971
                    break;
3972
                case 'FF00FF':
3973
                    $colorIdxFg = 0x0E;
3974
                    break;
3975
                case '00FFFF':
3976
                    $colorIdxFg = 0x0F;
3977
                    break;
3978
                case '800000':
3979
                    $colorIdxFg = 0x10;
3980
                    break;
3981
                case '008000':
3982
                    $colorIdxFg = 0x11;
3983
                    break;
3984
                case '000080':
3985
                    $colorIdxFg = 0x12;
3986
                    break;
3987
                case '808000':
3988
                    $colorIdxFg = 0x13;
3989
                    break;
3990
                case '800080':
3991
                    $colorIdxFg = 0x14;
3992
                    break;
3993
                case '008080':
3994
                    $colorIdxFg = 0x15;
3995
                    break;
3996
                case 'C0C0C0':
3997
                    $colorIdxFg = 0x16;
3998
                    break;
3999
                case '808080':
4000
                    $colorIdxFg = 0x17;
4001
                    break;
4002
                case '9999FF':
4003
                    $colorIdxFg = 0x18;
4004
                    break;
4005
                case '993366':
4006
                    $colorIdxFg = 0x19;
4007
                    break;
4008
                case 'FFFFCC':
4009
                    $colorIdxFg = 0x1A;
4010
                    break;
4011
                case 'CCFFFF':
4012
                    $colorIdxFg = 0x1B;
4013
                    break;
4014
                case '660066':
4015
                    $colorIdxFg = 0x1C;
4016
                    break;
4017
                case 'FF8080':
4018
                    $colorIdxFg = 0x1D;
4019
                    break;
4020
                case '0066CC':
4021
                    $colorIdxFg = 0x1E;
4022
                    break;
4023
                case 'CCCCFF':
4024
                    $colorIdxFg = 0x1F;
4025
                    break;
4026
                case '000080':
4027
                    $colorIdxFg = 0x20;
4028
                    break;
4029
                case 'FF00FF':
4030
                    $colorIdxFg = 0x21;
4031
                    break;
4032
                case 'FFFF00':
4033
                    $colorIdxFg = 0x22;
4034
                    break;
4035
                case '00FFFF':
4036
                    $colorIdxFg = 0x23;
4037
                    break;
4038
                case '800080':
4039
                    $colorIdxFg = 0x24;
4040
                    break;
4041
                case '800000':
4042
                    $colorIdxFg = 0x25;
4043
                    break;
4044
                case '008080':
4045
                    $colorIdxFg = 0x26;
4046
                    break;
4047
                case '0000FF':
4048
                    $colorIdxFg = 0x27;
4049
                    break;
4050
                case '00CCFF':
4051
                    $colorIdxFg = 0x28;
4052
                    break;
4053
                case 'CCFFFF':
4054
                    $colorIdxFg = 0x29;
4055
                    break;
4056
                case 'CCFFCC':
4057
                    $colorIdxFg = 0x2A;
4058
                    break;
4059
                case 'FFFF99':
4060
                    $colorIdxFg = 0x2B;
4061
                    break;
4062
                case '99CCFF':
4063
                    $colorIdxFg = 0x2C;
4064
                    break;
4065
                case 'FF99CC':
4066
                    $colorIdxFg = 0x2D;
4067
                    break;
4068
                case 'CC99FF':
4069
                    $colorIdxFg = 0x2E;
4070
                    break;
4071
                case 'FFCC99':
4072
                    $colorIdxFg = 0x2F;
4073
                    break;
4074
                case '3366FF':
4075
                    $colorIdxFg = 0x30;
4076
                    break;
4077
                case '33CCCC':
4078
                    $colorIdxFg = 0x31;
4079
                    break;
4080
                case '99CC00':
4081
                    $colorIdxFg = 0x32;
4082
                    break;
4083
                case 'FFCC00':
4084
                    $colorIdxFg = 0x33;
4085
                    break;
4086
                case 'FF9900':
4087
                    $colorIdxFg = 0x34;
4088
                    break;
4089
                case 'FF6600':
4090
                    $colorIdxFg = 0x35;
4091
                    break;
4092
                case '666699':
4093
                    $colorIdxFg = 0x36;
4094
                    break;
4095
                case '969696':
4096
                    $colorIdxFg = 0x37;
4097
                    break;
4098
                case '003366':
4099
                    $colorIdxFg = 0x38;
4100
                    break;
4101
                case '339966':
4102
                    $colorIdxFg = 0x39;
4103
                    break;
4104
                case '003300':
4105
                    $colorIdxFg = 0x3A;
4106
                    break;
4107
                case '333300':
4108
                    $colorIdxFg = 0x3B;
4109
                    break;
4110
                case '993300':
4111
                    $colorIdxFg = 0x3C;
4112
                    break;
4113
                case '993366':
4114
                    $colorIdxFg = 0x3D;
4115
                    break;
4116
                case '333399':
4117
                    $colorIdxFg = 0x3E;
4118
                    break;
4119
                case '333333':
4120
                    $colorIdxFg = 0x3F;
4121
                    break;
4122
                default:
4123
                          $colorIdxFg = 0x40;
4124
                    break;
4125
            }
4126
            $dataBlockFill = pack('v', $blockFillPatternStyle);
4127
            $dataBlockFill .= pack('v', $colorIdxFg | ($colorIdxBg << 7));
4128
        }