Code Duplication    Length = 173-173 lines in 3 locations

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

@@ 3257-3429 (lines=173) @@
3254
            // Not used (3)
3255
            $dataBlockFont .= pack('vC', 0x0000, 0x00);
3256
            // Font color index
3257
            switch ($conditional->getStyle()->getFont()->getColor()->getRGB()) {
3258
                case '000000':
3259
                    $colorIdx = 0x08;
3260
                    break;
3261
                case 'FFFFFF':
3262
                    $colorIdx = 0x09;
3263
                    break;
3264
                case 'FF0000':
3265
                    $colorIdx = 0x0A;
3266
                    break;
3267
                case '00FF00':
3268
                    $colorIdx = 0x0B;
3269
                    break;
3270
                case '0000FF':
3271
                    $colorIdx = 0x0C;
3272
                    break;
3273
                case 'FFFF00':
3274
                    $colorIdx = 0x0D;
3275
                    break;
3276
                case 'FF00FF':
3277
                    $colorIdx = 0x0E;
3278
                    break;
3279
                case '00FFFF':
3280
                    $colorIdx = 0x0F;
3281
                    break;
3282
                case '800000':
3283
                    $colorIdx = 0x10;
3284
                    break;
3285
                case '008000':
3286
                    $colorIdx = 0x11;
3287
                    break;
3288
                case '000080':
3289
                    $colorIdx = 0x12;
3290
                    break;
3291
                case '808000':
3292
                    $colorIdx = 0x13;
3293
                    break;
3294
                case '800080':
3295
                    $colorIdx = 0x14;
3296
                    break;
3297
                case '008080':
3298
                    $colorIdx = 0x15;
3299
                    break;
3300
                case 'C0C0C0':
3301
                    $colorIdx = 0x16;
3302
                    break;
3303
                case '808080':
3304
                    $colorIdx = 0x17;
3305
                    break;
3306
                case '9999FF':
3307
                    $colorIdx = 0x18;
3308
                    break;
3309
                case '993366':
3310
                    $colorIdx = 0x19;
3311
                    break;
3312
                case 'FFFFCC':
3313
                    $colorIdx = 0x1A;
3314
                    break;
3315
                case 'CCFFFF':
3316
                    $colorIdx = 0x1B;
3317
                    break;
3318
                case '660066':
3319
                    $colorIdx = 0x1C;
3320
                    break;
3321
                case 'FF8080':
3322
                    $colorIdx = 0x1D;
3323
                    break;
3324
                case '0066CC':
3325
                    $colorIdx = 0x1E;
3326
                    break;
3327
                case 'CCCCFF':
3328
                    $colorIdx = 0x1F;
3329
                    break;
3330
                case '000080':
3331
                    $colorIdx = 0x20;
3332
                    break;
3333
                case 'FF00FF':
3334
                    $colorIdx = 0x21;
3335
                    break;
3336
                case 'FFFF00':
3337
                    $colorIdx = 0x22;
3338
                    break;
3339
                case '00FFFF':
3340
                    $colorIdx = 0x23;
3341
                    break;
3342
                case '800080':
3343
                    $colorIdx = 0x24;
3344
                    break;
3345
                case '800000':
3346
                    $colorIdx = 0x25;
3347
                    break;
3348
                case '008080':
3349
                    $colorIdx = 0x26;
3350
                    break;
3351
                case '0000FF':
3352
                    $colorIdx = 0x27;
3353
                    break;
3354
                case '00CCFF':
3355
                    $colorIdx = 0x28;
3356
                    break;
3357
                case 'CCFFFF':
3358
                    $colorIdx = 0x29;
3359
                    break;
3360
                case 'CCFFCC':
3361
                    $colorIdx = 0x2A;
3362
                    break;
3363
                case 'FFFF99':
3364
                    $colorIdx = 0x2B;
3365
                    break;
3366
                case '99CCFF':
3367
                    $colorIdx = 0x2C;
3368
                    break;
3369
                case 'FF99CC':
3370
                    $colorIdx = 0x2D;
3371
                    break;
3372
                case 'CC99FF':
3373
                    $colorIdx = 0x2E;
3374
                    break;
3375
                case 'FFCC99':
3376
                    $colorIdx = 0x2F;
3377
                    break;
3378
                case '3366FF':
3379
                    $colorIdx = 0x30;
3380
                    break;
3381
                case '33CCCC':
3382
                    $colorIdx = 0x31;
3383
                    break;
3384
                case '99CC00':
3385
                    $colorIdx = 0x32;
3386
                    break;
3387
                case 'FFCC00':
3388
                    $colorIdx = 0x33;
3389
                    break;
3390
                case 'FF9900':
3391
                    $colorIdx = 0x34;
3392
                    break;
3393
                case 'FF6600':
3394
                    $colorIdx = 0x35;
3395
                    break;
3396
                case '666699':
3397
                    $colorIdx = 0x36;
3398
                    break;
3399
                case '969696':
3400
                    $colorIdx = 0x37;
3401
                    break;
3402
                case '003366':
3403
                    $colorIdx = 0x38;
3404
                    break;
3405
                case '339966':
3406
                    $colorIdx = 0x39;
3407
                    break;
3408
                case '003300':
3409
                    $colorIdx = 0x3A;
3410
                    break;
3411
                case '333300':
3412
                    $colorIdx = 0x3B;
3413
                    break;
3414
                case '993300':
3415
                    $colorIdx = 0x3C;
3416
                    break;
3417
                case '993366':
3418
                    $colorIdx = 0x3D;
3419
                    break;
3420
                case '333399':
3421
                    $colorIdx = 0x3E;
3422
                    break;
3423
                case '333333':
3424
                    $colorIdx = 0x3F;
3425
                    break;
3426
                default:
3427
                    $colorIdx = 0x00;
3428
                    break;
3429
            }
3430
            $dataBlockFont .= pack('V', $colorIdx);
3431
            // Not used (4)
3432
            $dataBlockFont .= pack('V', 0x00000000);
@@ 3820-3992 (lines=173) @@
3817
                    break;
3818
            }
3819
            // Color
3820
            switch ($conditional->getStyle()->getFill()->getStartColor()->getRGB()) {
3821
                case '000000':
3822
                    $colorIdxBg = 0x08;
3823
                    break;
3824
                case 'FFFFFF':
3825
                    $colorIdxBg = 0x09;
3826
                    break;
3827
                case 'FF0000':
3828
                    $colorIdxBg = 0x0A;
3829
                    break;
3830
                case '00FF00':
3831
                    $colorIdxBg = 0x0B;
3832
                    break;
3833
                case '0000FF':
3834
                    $colorIdxBg = 0x0C;
3835
                    break;
3836
                case 'FFFF00':
3837
                    $colorIdxBg = 0x0D;
3838
                    break;
3839
                case 'FF00FF':
3840
                    $colorIdxBg = 0x0E;
3841
                    break;
3842
                case '00FFFF':
3843
                    $colorIdxBg = 0x0F;
3844
                    break;
3845
                case '800000':
3846
                    $colorIdxBg = 0x10;
3847
                    break;
3848
                case '008000':
3849
                    $colorIdxBg = 0x11;
3850
                    break;
3851
                case '000080':
3852
                    $colorIdxBg = 0x12;
3853
                    break;
3854
                case '808000':
3855
                    $colorIdxBg = 0x13;
3856
                    break;
3857
                case '800080':
3858
                    $colorIdxBg = 0x14;
3859
                    break;
3860
                case '008080':
3861
                    $colorIdxBg = 0x15;
3862
                    break;
3863
                case 'C0C0C0':
3864
                    $colorIdxBg = 0x16;
3865
                    break;
3866
                case '808080':
3867
                    $colorIdxBg = 0x17;
3868
                    break;
3869
                case '9999FF':
3870
                    $colorIdxBg = 0x18;
3871
                    break;
3872
                case '993366':
3873
                    $colorIdxBg = 0x19;
3874
                    break;
3875
                case 'FFFFCC':
3876
                    $colorIdxBg = 0x1A;
3877
                    break;
3878
                case 'CCFFFF':
3879
                    $colorIdxBg = 0x1B;
3880
                    break;
3881
                case '660066':
3882
                    $colorIdxBg = 0x1C;
3883
                    break;
3884
                case 'FF8080':
3885
                    $colorIdxBg = 0x1D;
3886
                    break;
3887
                case '0066CC':
3888
                    $colorIdxBg = 0x1E;
3889
                    break;
3890
                case 'CCCCFF':
3891
                    $colorIdxBg = 0x1F;
3892
                    break;
3893
                case '000080':
3894
                    $colorIdxBg = 0x20;
3895
                    break;
3896
                case 'FF00FF':
3897
                    $colorIdxBg = 0x21;
3898
                    break;
3899
                case 'FFFF00':
3900
                    $colorIdxBg = 0x22;
3901
                    break;
3902
                case '00FFFF':
3903
                    $colorIdxBg = 0x23;
3904
                    break;
3905
                case '800080':
3906
                    $colorIdxBg = 0x24;
3907
                    break;
3908
                case '800000':
3909
                    $colorIdxBg = 0x25;
3910
                    break;
3911
                case '008080':
3912
                    $colorIdxBg = 0x26;
3913
                    break;
3914
                case '0000FF':
3915
                    $colorIdxBg = 0x27;
3916
                    break;
3917
                case '00CCFF':
3918
                    $colorIdxBg = 0x28;
3919
                    break;
3920
                case 'CCFFFF':
3921
                    $colorIdxBg = 0x29;
3922
                    break;
3923
                case 'CCFFCC':
3924
                    $colorIdxBg = 0x2A;
3925
                    break;
3926
                case 'FFFF99':
3927
                    $colorIdxBg = 0x2B;
3928
                    break;
3929
                case '99CCFF':
3930
                    $colorIdxBg = 0x2C;
3931
                    break;
3932
                case 'FF99CC':
3933
                    $colorIdxBg = 0x2D;
3934
                    break;
3935
                case 'CC99FF':
3936
                    $colorIdxBg = 0x2E;
3937
                    break;
3938
                case 'FFCC99':
3939
                    $colorIdxBg = 0x2F;
3940
                    break;
3941
                case '3366FF':
3942
                    $colorIdxBg = 0x30;
3943
                    break;
3944
                case '33CCCC':
3945
                    $colorIdxBg = 0x31;
3946
                    break;
3947
                case '99CC00':
3948
                    $colorIdxBg = 0x32;
3949
                    break;
3950
                case 'FFCC00':
3951
                    $colorIdxBg = 0x33;
3952
                    break;
3953
                case 'FF9900':
3954
                    $colorIdxBg = 0x34;
3955
                    break;
3956
                case 'FF6600':
3957
                    $colorIdxBg = 0x35;
3958
                    break;
3959
                case '666699':
3960
                    $colorIdxBg = 0x36;
3961
                    break;
3962
                case '969696':
3963
                    $colorIdxBg = 0x37;
3964
                    break;
3965
                case '003366':
3966
                    $colorIdxBg = 0x38;
3967
                    break;
3968
                case '339966':
3969
                    $colorIdxBg = 0x39;
3970
                    break;
3971
                case '003300':
3972
                    $colorIdxBg = 0x3A;
3973
                    break;
3974
                case '333300':
3975
                    $colorIdxBg = 0x3B;
3976
                    break;
3977
                case '993300':
3978
                    $colorIdxBg = 0x3C;
3979
                    break;
3980
                case '993366':
3981
                    $colorIdxBg = 0x3D;
3982
                    break;
3983
                case '333399':
3984
                    $colorIdxBg = 0x3E;
3985
                    break;
3986
                case '333333':
3987
                    $colorIdxBg = 0x3F;
3988
                    break;
3989
                default:
3990
                          $colorIdxBg = 0x41;
3991
                    break;
3992
            }
3993
            // Fg Color
3994
            switch ($conditional->getStyle()->getFill()->getEndColor()->getRGB()) {
3995
                case '000000':
@@ 3994-4166 (lines=173) @@
3991
                    break;
3992
            }
3993
            // Fg Color
3994
            switch ($conditional->getStyle()->getFill()->getEndColor()->getRGB()) {
3995
                case '000000':
3996
                    $colorIdxFg = 0x08;
3997
                    break;
3998
                case 'FFFFFF':
3999
                    $colorIdxFg = 0x09;
4000
                    break;
4001
                case 'FF0000':
4002
                    $colorIdxFg = 0x0A;
4003
                    break;
4004
                case '00FF00':
4005
                    $colorIdxFg = 0x0B;
4006
                    break;
4007
                case '0000FF':
4008
                    $colorIdxFg = 0x0C;
4009
                    break;
4010
                case 'FFFF00':
4011
                    $colorIdxFg = 0x0D;
4012
                    break;
4013
                case 'FF00FF':
4014
                    $colorIdxFg = 0x0E;
4015
                    break;
4016
                case '00FFFF':
4017
                    $colorIdxFg = 0x0F;
4018
                    break;
4019
                case '800000':
4020
                    $colorIdxFg = 0x10;
4021
                    break;
4022
                case '008000':
4023
                    $colorIdxFg = 0x11;
4024
                    break;
4025
                case '000080':
4026
                    $colorIdxFg = 0x12;
4027
                    break;
4028
                case '808000':
4029
                    $colorIdxFg = 0x13;
4030
                    break;
4031
                case '800080':
4032
                    $colorIdxFg = 0x14;
4033
                    break;
4034
                case '008080':
4035
                    $colorIdxFg = 0x15;
4036
                    break;
4037
                case 'C0C0C0':
4038
                    $colorIdxFg = 0x16;
4039
                    break;
4040
                case '808080':
4041
                    $colorIdxFg = 0x17;
4042
                    break;
4043
                case '9999FF':
4044
                    $colorIdxFg = 0x18;
4045
                    break;
4046
                case '993366':
4047
                    $colorIdxFg = 0x19;
4048
                    break;
4049
                case 'FFFFCC':
4050
                    $colorIdxFg = 0x1A;
4051
                    break;
4052
                case 'CCFFFF':
4053
                    $colorIdxFg = 0x1B;
4054
                    break;
4055
                case '660066':
4056
                    $colorIdxFg = 0x1C;
4057
                    break;
4058
                case 'FF8080':
4059
                    $colorIdxFg = 0x1D;
4060
                    break;
4061
                case '0066CC':
4062
                    $colorIdxFg = 0x1E;
4063
                    break;
4064
                case 'CCCCFF':
4065
                    $colorIdxFg = 0x1F;
4066
                    break;
4067
                case '000080':
4068
                    $colorIdxFg = 0x20;
4069
                    break;
4070
                case 'FF00FF':
4071
                    $colorIdxFg = 0x21;
4072
                    break;
4073
                case 'FFFF00':
4074
                    $colorIdxFg = 0x22;
4075
                    break;
4076
                case '00FFFF':
4077
                    $colorIdxFg = 0x23;
4078
                    break;
4079
                case '800080':
4080
                    $colorIdxFg = 0x24;
4081
                    break;
4082
                case '800000':
4083
                    $colorIdxFg = 0x25;
4084
                    break;
4085
                case '008080':
4086
                    $colorIdxFg = 0x26;
4087
                    break;
4088
                case '0000FF':
4089
                    $colorIdxFg = 0x27;
4090
                    break;
4091
                case '00CCFF':
4092
                    $colorIdxFg = 0x28;
4093
                    break;
4094
                case 'CCFFFF':
4095
                    $colorIdxFg = 0x29;
4096
                    break;
4097
                case 'CCFFCC':
4098
                    $colorIdxFg = 0x2A;
4099
                    break;
4100
                case 'FFFF99':
4101
                    $colorIdxFg = 0x2B;
4102
                    break;
4103
                case '99CCFF':
4104
                    $colorIdxFg = 0x2C;
4105
                    break;
4106
                case 'FF99CC':
4107
                    $colorIdxFg = 0x2D;
4108
                    break;
4109
                case 'CC99FF':
4110
                    $colorIdxFg = 0x2E;
4111
                    break;
4112
                case 'FFCC99':
4113
                    $colorIdxFg = 0x2F;
4114
                    break;
4115
                case '3366FF':
4116
                    $colorIdxFg = 0x30;
4117
                    break;
4118
                case '33CCCC':
4119
                    $colorIdxFg = 0x31;
4120
                    break;
4121
                case '99CC00':
4122
                    $colorIdxFg = 0x32;
4123
                    break;
4124
                case 'FFCC00':
4125
                    $colorIdxFg = 0x33;
4126
                    break;
4127
                case 'FF9900':
4128
                    $colorIdxFg = 0x34;
4129
                    break;
4130
                case 'FF6600':
4131
                    $colorIdxFg = 0x35;
4132
                    break;
4133
                case '666699':
4134
                    $colorIdxFg = 0x36;
4135
                    break;
4136
                case '969696':
4137
                    $colorIdxFg = 0x37;
4138
                    break;
4139
                case '003366':
4140
                    $colorIdxFg = 0x38;
4141
                    break;
4142
                case '339966':
4143
                    $colorIdxFg = 0x39;
4144
                    break;
4145
                case '003300':
4146
                    $colorIdxFg = 0x3A;
4147
                    break;
4148
                case '333300':
4149
                    $colorIdxFg = 0x3B;
4150
                    break;
4151
                case '993300':
4152
                    $colorIdxFg = 0x3C;
4153
                    break;
4154
                case '993366':
4155
                    $colorIdxFg = 0x3D;
4156
                    break;
4157
                case '333399':
4158
                    $colorIdxFg = 0x3E;
4159
                    break;
4160
                case '333333':
4161
                    $colorIdxFg = 0x3F;
4162
                    break;
4163
                default:
4164
                          $colorIdxFg = 0x40;
4165
                    break;
4166
            }
4167
            $dataBlockFill = pack('v', $blockFillPatternStyle);
4168
            $dataBlockFill .= pack('v', $colorIdxFg | ($colorIdxBg << 7));
4169
        }