Code Duplication    Length = 162-163 lines in 4 locations

myems-api/excelexporters/equipmentefficiency.py 1 location

@@ 930-1092 (lines=163) @@
927
928
    ####################################################################################################################
929
930
    if has_parameters_names_and_timestamps_and_values_data:
931
932
        ################################################################################################################
933
        # new worksheet
934
        ################################################################################################################
935
936
        parameters_data = report['parameters']
937
        parameters_names_len = len(parameters_data['names'])
938
939
        file_name = (re.sub(r'[^A-Z]', '', ws.title))+'_'
940
        parameters_ws = wb.create_sheet(file_name + _('Parameters'))
941
942
        parameters_timestamps_data_max_len = \
943
            get_parameters_timestamps_lists_max_len(list(parameters_data['timestamps']))
944
945
        # Row height
946
        parameters_ws.row_dimensions[1].height = 102
947
        for i in range(2, 7 + 1):
948
            parameters_ws.row_dimensions[i].height = 42
949
950
        for i in range(8, parameters_timestamps_data_max_len + 10):
951
            parameters_ws.row_dimensions[i].height = 60
952
953
        # Col width
954
        parameters_ws.column_dimensions['A'].width = 1.5
955
956
        parameters_ws.column_dimensions['B'].width = 25.0
957
958
        for i in range(3, 12+parameters_names_len*3):
959
            parameters_ws.column_dimensions[format_cell.get_column_letter(i)].width = 15.0
960
961
        # Img
962
        img = Image("excelexporters/myems.png")
963
        parameters_ws.add_image(img, 'A1')
964
965
        # Title
966
967
        parameters_ws['B3'].alignment = b_r_alignment
968
        parameters_ws['B3'] = _('Name') + ':'
969
        parameters_ws['C3'].border = b_border
970
        parameters_ws['C3'].alignment = b_c_alignment
971
        parameters_ws['C3'] = name
972
973
        parameters_ws['D3'].alignment = b_r_alignment
974
        parameters_ws['D3'] = _('Period Type') + ':'
975
        parameters_ws['E3'].border = b_border
976
        parameters_ws['E3'].alignment = b_c_alignment
977
        parameters_ws['E3'] = period_type
978
979
        parameters_ws['B4'].alignment = b_r_alignment
980
        parameters_ws['B4'] = _('Reporting Start Datetime') + ':'
981
        parameters_ws['C4'].border = b_border
982
        parameters_ws['C4'].alignment = b_c_alignment
983
        parameters_ws['C4'] = reporting_start_datetime_local
984
985
        parameters_ws['D4'].alignment = b_r_alignment
986
        parameters_ws['D4'] = _('Reporting End Datetime') + ':'
987
        parameters_ws['E4'].border = b_border
988
        parameters_ws['E4'].alignment = b_c_alignment
989
        parameters_ws['E4'] = reporting_end_datetime_local
990
991
        parameters_ws_current_row_number = 6
992
993
        parameters_ws['B' + str(parameters_ws_current_row_number)].font = title_font
994
        parameters_ws['B' + str(parameters_ws_current_row_number)] = name + ' ' + _('Parameters')
995
996
        parameters_ws_current_row_number += 1
997
998
        parameters_table_start_row_number = parameters_ws_current_row_number
999
1000
        parameters_ws.row_dimensions[parameters_ws_current_row_number].height = 80
1001
1002
        parameters_ws_current_row_number += 1
1003
1004
        table_current_col_number = 2
1005
1006
        for i in range(0, parameters_names_len):
1007
1008
            if len(parameters_data['timestamps'][i]) == 0:
1009
                continue
1010
1011
            col = format_cell.get_column_letter(table_current_col_number)
1012
1013
            parameters_ws[col + str(parameters_ws_current_row_number - 1)].fill = table_fill
1014
            parameters_ws[col + str(parameters_ws_current_row_number - 1)].border = f_border
1015
1016
            col = format_cell.get_column_letter(table_current_col_number + 1)
1017
1018
            parameters_ws[col + str(parameters_ws_current_row_number - 1)].fill = table_fill
1019
            parameters_ws[col + str(parameters_ws_current_row_number - 1)].border = f_border
1020
            parameters_ws[col + str(parameters_ws_current_row_number - 1)].font = name_font
1021
            parameters_ws[col + str(parameters_ws_current_row_number - 1)].alignment = c_c_alignment
1022
            parameters_ws[col + str(parameters_ws_current_row_number - 1)] = parameters_data['names'][i]
1023
1024
            table_current_row_number = parameters_ws_current_row_number
1025
1026
            for j, value in enumerate(list(parameters_data['timestamps'][i])):
1027
                col = format_cell.get_column_letter(table_current_col_number)
1028
1029
                parameters_ws[col + str(table_current_row_number)].border = f_border
1030
                parameters_ws[col + str(table_current_row_number)].font = title_font
1031
                parameters_ws[col + str(table_current_row_number)].alignment = c_c_alignment
1032
                parameters_ws[col + str(table_current_row_number)] = value
1033
1034
                col = format_cell.get_column_letter(table_current_col_number + 1)
1035
1036
                parameters_ws[col + str(table_current_row_number)].border = f_border
1037
                parameters_ws[col + str(table_current_row_number)].font = title_font
1038
                parameters_ws[col + str(table_current_row_number)].alignment = c_c_alignment
1039
                parameters_ws[col + str(table_current_row_number)] = round(parameters_data['values'][i][j], 2)
1040
1041
                table_current_row_number += 1
1042
1043
            table_current_col_number = table_current_col_number + 3
1044
1045
        ################################################################################################################
1046
        # parameters chart and parameters table
1047
        ################################################################################################################
1048
1049
        ws['B' + str(current_sheet_parameters_row_number)].font = title_font
1050
        ws['B' + str(current_sheet_parameters_row_number)] = name + ' ' + _('Parameters')
1051
1052
        current_sheet_parameters_row_number += 1
1053
1054
        chart_start_row_number = current_sheet_parameters_row_number
1055
1056
        col_index = 0
1057
1058
        for i in range(0, parameters_names_len):
1059
1060
            if len(parameters_data['timestamps'][i]) == 0:
1061
                continue
1062
1063
            line = LineChart()
1064
            data_col = 3+col_index*3
1065
            labels_col = 2+col_index*3
1066
            col_index += 1
1067
            line.title = _('Parameters') + ' - ' + \
1068
                parameters_ws.cell(row=parameters_table_start_row_number, column=data_col).value
1069
            labels = Reference(parameters_ws, min_col=labels_col, min_row=parameters_table_start_row_number + 1,
1070
                               max_row=(len(parameters_data['timestamps'][i])+parameters_table_start_row_number))
1071
            line_data = Reference(parameters_ws, min_col=data_col, min_row=parameters_table_start_row_number,
1072
                                  max_row=(len(parameters_data['timestamps'][i])+parameters_table_start_row_number))
1073
            line.add_data(line_data, titles_from_data=True)
1074
            line.set_categories(labels)
1075
            line_data = line.series[0]
1076
            line_data.marker.symbol = "circle"
1077
            line_data.smooth = True
1078
            line.x_axis.crosses = 'min'
1079
            line.height = 8.25
1080
            line.width = 24
1081
            line.dLbls = DataLabelList()
1082
            line.dLbls.dLblPos = 't'
1083
            line.dLbls.showVal = False
1084
            line.dLbls.showPercent = False
1085
            chart_col = 'B'
1086
            chart_cell = chart_col + str(chart_start_row_number)
1087
            chart_start_row_number += 6
1088
            ws.add_chart(line, chart_cell)
1089
1090
        current_sheet_parameters_row_number = chart_start_row_number
1091
1092
        current_sheet_parameters_row_number += 1
1093
1094
    filename = str(uuid.uuid4()) + '.xlsx'
1095
    wb.save(filename)

myems-api/excelexporters/spaceefficiency.py 1 location

@@ 595-756 (lines=162) @@
592
593
    ####################################################################################################################
594
595
    if has_parameters_names_and_timestamps_and_values_data:
596
597
        ################################################################################################################
598
        # new worksheet
599
        ################################################################################################################
600
601
        parameters_data = report['parameters']
602
        parameters_names_len = len(parameters_data['names'])
603
604
        file_name = "Space"+re.sub(r'[^A-Z]', '', ws.title.strip('S')) + "_"
605
        parameters_ws = wb.create_sheet(file_name + _('Parameters'))
606
607
        parameters_timestamps_data_max_len = \
608
            get_parameters_timestamps_lists_max_len(list(parameters_data['timestamps']))
609
610
        # Row height
611
        parameters_ws.row_dimensions[1].height = 102
612
        for i in range(2, 7 + 1):
613
            parameters_ws.row_dimensions[i].height = 42
614
615
        for i in range(8, parameters_timestamps_data_max_len + 10):
616
            parameters_ws.row_dimensions[i].height = 60
617
618
        # Col width
619
        parameters_ws.column_dimensions['A'].width = 1.5
620
621
        parameters_ws.column_dimensions['B'].width = 25.0
622
623
        for i in range(3, 12+parameters_names_len*3):
624
            parameters_ws.column_dimensions[format_cell.get_column_letter(i)].width = 15.0
625
626
        # Img
627
        img = Image("excelexporters/myems.png")
628
        parameters_ws.add_image(img, 'A1')
629
630
        # Title
631
        parameters_ws['B3'].alignment = b_r_alignment
632
        parameters_ws['B3'] = _('Name') + ':'
633
        parameters_ws['C3'].border = b_border
634
        parameters_ws['C3'].alignment = b_c_alignment
635
        parameters_ws['C3'] = name
636
637
        parameters_ws['D3'].alignment = b_r_alignment
638
        parameters_ws['D3'] = _('Period Type') + ':'
639
        parameters_ws['E3'].border = b_border
640
        parameters_ws['E3'].alignment = b_c_alignment
641
        parameters_ws['E3'] = period_type
642
643
        parameters_ws['B4'].alignment = b_r_alignment
644
        parameters_ws['B4'] = _('Reporting Start Datetime') + ':'
645
        parameters_ws['C4'].border = b_border
646
        parameters_ws['C4'].alignment = b_c_alignment
647
        parameters_ws['C4'] = reporting_start_datetime_local
648
649
        parameters_ws['D4'].alignment = b_r_alignment
650
        parameters_ws['D4'] = _('Reporting End Datetime') + ':'
651
        parameters_ws['E4'].border = b_border
652
        parameters_ws['E4'].alignment = b_c_alignment
653
        parameters_ws['E4'] = reporting_end_datetime_local
654
655
        parameters_ws_current_row_number = 6
656
657
        parameters_ws['B' + str(parameters_ws_current_row_number)].font = title_font
658
        parameters_ws['B' + str(parameters_ws_current_row_number)] = name + ' ' + _('Parameters')
659
660
        parameters_ws_current_row_number += 1
661
662
        parameters_table_start_row_number = parameters_ws_current_row_number
663
664
        parameters_ws.row_dimensions[parameters_ws_current_row_number].height = 80
665
666
        parameters_ws_current_row_number += 1
667
668
        table_current_col_number = 2
669
670
        for i in range(0, parameters_names_len):
671
672
            if len(parameters_data['timestamps'][i]) == 0:
673
                continue
674
675
            col = format_cell.get_column_letter(table_current_col_number)
676
677
            parameters_ws[col + str(parameters_ws_current_row_number - 1)].fill = table_fill
678
            parameters_ws[col + str(parameters_ws_current_row_number - 1)].border = f_border
679
680
            col = format_cell.get_column_letter(table_current_col_number + 1)
681
682
            parameters_ws[col + str(parameters_ws_current_row_number - 1)].fill = table_fill
683
            parameters_ws[col + str(parameters_ws_current_row_number - 1)].border = f_border
684
            parameters_ws[col + str(parameters_ws_current_row_number - 1)].font = name_font
685
            parameters_ws[col + str(parameters_ws_current_row_number - 1)].alignment = c_c_alignment
686
            parameters_ws[col + str(parameters_ws_current_row_number - 1)] = parameters_data['names'][i]
687
688
            table_current_row_number = parameters_ws_current_row_number
689
690
            for j, value in enumerate(list(parameters_data['timestamps'][i])):
691
                col = format_cell.get_column_letter(table_current_col_number)
692
693
                parameters_ws[col + str(table_current_row_number)].border = f_border
694
                parameters_ws[col + str(table_current_row_number)].font = title_font
695
                parameters_ws[col + str(table_current_row_number)].alignment = c_c_alignment
696
                parameters_ws[col + str(table_current_row_number)] = value
697
698
                col = format_cell.get_column_letter(table_current_col_number + 1)
699
700
                parameters_ws[col + str(table_current_row_number)].border = f_border
701
                parameters_ws[col + str(table_current_row_number)].font = title_font
702
                parameters_ws[col + str(table_current_row_number)].alignment = c_c_alignment
703
                parameters_ws[col + str(table_current_row_number)] = round(parameters_data['values'][i][j], 2)
704
705
                table_current_row_number += 1
706
707
            table_current_col_number = table_current_col_number + 3
708
709
        ################################################################################################################
710
        # parameters chart and parameters table
711
        ################################################################################################################
712
713
        ws['B' + str(current_sheet_parameters_row_number)].font = title_font
714
        ws['B' + str(current_sheet_parameters_row_number)] = name + ' ' + _('Parameters')
715
716
        current_sheet_parameters_row_number += 1
717
718
        chart_start_row_number = current_sheet_parameters_row_number
719
720
        col_index = 0
721
722
        for i in range(0, parameters_names_len):
723
724
            if len(parameters_data['timestamps'][i]) == 0:
725
                continue
726
727
            line = LineChart()
728
            data_col = 3+col_index*3
729
            labels_col = 2+col_index*3
730
            col_index += 1
731
            line.title = _('Parameters') + ' - ' + \
732
                parameters_ws.cell(row=parameters_table_start_row_number, column=data_col).value
733
            labels = Reference(parameters_ws, min_col=labels_col, min_row=parameters_table_start_row_number + 1,
734
                               max_row=(len(parameters_data['timestamps'][i])+parameters_table_start_row_number))
735
            line_data = Reference(parameters_ws, min_col=data_col, min_row=parameters_table_start_row_number,
736
                                  max_row=(len(parameters_data['timestamps'][i])+parameters_table_start_row_number))
737
            line.add_data(line_data, titles_from_data=True)
738
            line.set_categories(labels)
739
            line_data = line.series[0]
740
            line_data.marker.symbol = "circle"
741
            line_data.smooth = True
742
            line.x_axis.crosses = 'min'
743
            line.height = 8.25
744
            line.width = 24
745
            line.dLbls = DataLabelList()
746
            line.dLbls.dLblPos = 't'
747
            line.dLbls.showVal = False
748
            line.dLbls.showPercent = False
749
            chart_col = 'B'
750
            chart_cell = chart_col + str(chart_start_row_number)
751
            chart_start_row_number += 6
752
            ws.add_chart(line, chart_cell)
753
754
        current_sheet_parameters_row_number = chart_start_row_number
755
756
        current_sheet_parameters_row_number += 1
757
758
    filename = str(uuid.uuid4()) + '.xlsx'
759
    wb.save(filename)

myems-api/excelexporters/combinedequipmentefficiency.py 1 location

@@ 1003-1164 (lines=162) @@
1000
                ws[col + row].border = f_border
1001
    ####################################################################################################################
1002
1003
    if has_parameters_names_and_timestamps_and_values_data:
1004
1005
        ################################################################################################################
1006
        # new worksheet
1007
        ################################################################################################################
1008
1009
        parameters_data = report['parameters']
1010
        parameters_names_len = len(parameters_data['names'])
1011
1012
        file_name = (re.sub(r'[^A-Z]', '', ws.title))+'_'
1013
        parameters_ws = wb.create_sheet(file_name + _('Parameters'))
1014
1015
        parameters_timestamps_data_max_len = \
1016
            get_parameters_timestamps_lists_max_len(list(parameters_data['timestamps']))
1017
1018
        # Row height
1019
        parameters_ws.row_dimensions[1].height = 102
1020
        for i in range(2, 7 + 1):
1021
            parameters_ws.row_dimensions[i].height = 42
1022
1023
        for i in range(8, parameters_timestamps_data_max_len + 10):
1024
            parameters_ws.row_dimensions[i].height = 60
1025
1026
        # Col width
1027
        parameters_ws.column_dimensions['A'].width = 1.5
1028
1029
        parameters_ws.column_dimensions['B'].width = 25.0
1030
1031
        for i in range(3, 12+parameters_names_len*3):
1032
            parameters_ws.column_dimensions[format_cell.get_column_letter(i)].width = 15.0
1033
1034
        # Img
1035
        img = Image("excelexporters/myems.png")
1036
        parameters_ws.add_image(img, 'A1')
1037
1038
        # Title
1039
        parameters_ws['B3'].alignment = b_r_alignment
1040
        parameters_ws['B3'] = _('Name') + ':'
1041
        parameters_ws['C3'].border = b_border
1042
        parameters_ws['C3'].alignment = b_c_alignment
1043
        parameters_ws['C3'] = name
1044
1045
        parameters_ws['D3'].alignment = b_r_alignment
1046
        parameters_ws['D3'] = _('Period Type') + ':'
1047
        parameters_ws['E3'].border = b_border
1048
        parameters_ws['E3'].alignment = b_c_alignment
1049
        parameters_ws['E3'] = period_type
1050
1051
        parameters_ws['B4'].alignment = b_r_alignment
1052
        parameters_ws['B4'] = _('Reporting Start Datetime') + ':'
1053
        parameters_ws['C4'].border = b_border
1054
        parameters_ws['C4'].alignment = b_c_alignment
1055
        parameters_ws['C4'] = reporting_start_datetime_local
1056
1057
        parameters_ws['D4'].alignment = b_r_alignment
1058
        parameters_ws['D4'] = _('Reporting End Datetime') + ':'
1059
        parameters_ws['E4'].border = b_border
1060
        parameters_ws['E4'].alignment = b_c_alignment
1061
        parameters_ws['E4'] = reporting_end_datetime_local
1062
1063
        parameters_ws_current_row_number = 6
1064
1065
        parameters_ws['B' + str(parameters_ws_current_row_number)].font = title_font
1066
        parameters_ws['B' + str(parameters_ws_current_row_number)] = name + ' ' + _('Parameters')
1067
1068
        parameters_ws_current_row_number += 1
1069
1070
        parameters_table_start_row_number = parameters_ws_current_row_number
1071
1072
        parameters_ws.row_dimensions[parameters_ws_current_row_number].height = 80
1073
1074
        parameters_ws_current_row_number += 1
1075
1076
        table_current_col_number = 2
1077
1078
        for i in range(0, parameters_names_len):
1079
1080
            if len(parameters_data['timestamps'][i]) == 0:
1081
                continue
1082
1083
            col = format_cell.get_column_letter(table_current_col_number)
1084
1085
            parameters_ws[col + str(parameters_ws_current_row_number-1)].fill = table_fill
1086
            parameters_ws[col + str(parameters_ws_current_row_number-1)].border = f_border
1087
1088
            col = format_cell.get_column_letter(table_current_col_number + 1)
1089
1090
            parameters_ws[col + str(parameters_ws_current_row_number-1)].fill = table_fill
1091
            parameters_ws[col + str(parameters_ws_current_row_number-1)].border = f_border
1092
            parameters_ws[col + str(parameters_ws_current_row_number-1)].font = name_font
1093
            parameters_ws[col + str(parameters_ws_current_row_number-1)].alignment = c_c_alignment
1094
            parameters_ws[col + str(parameters_ws_current_row_number-1)] = parameters_data['names'][i]
1095
1096
            table_current_row_number = parameters_ws_current_row_number
1097
1098
            for j, value in enumerate(list(parameters_data['timestamps'][i])):
1099
                col = format_cell.get_column_letter(table_current_col_number)
1100
1101
                parameters_ws[col + str(table_current_row_number)].border = f_border
1102
                parameters_ws[col + str(table_current_row_number)].font = title_font
1103
                parameters_ws[col + str(table_current_row_number)].alignment = c_c_alignment
1104
                parameters_ws[col + str(table_current_row_number)] = value
1105
1106
                col = format_cell.get_column_letter(table_current_col_number + 1)
1107
1108
                parameters_ws[col + str(table_current_row_number)].border = f_border
1109
                parameters_ws[col + str(table_current_row_number)].font = title_font
1110
                parameters_ws[col + str(table_current_row_number)].alignment = c_c_alignment
1111
                parameters_ws[col + str(table_current_row_number)] = round(parameters_data['values'][i][j], 2)
1112
1113
                table_current_row_number += 1
1114
1115
            table_current_col_number = table_current_col_number + 3
1116
1117
        ################################################################################################################
1118
        # parameters chart and parameters table
1119
        ################################################################################################################
1120
1121
        ws['B' + str(current_sheet_parameters_row_number)].font = title_font
1122
        ws['B' + str(current_sheet_parameters_row_number)] = name + ' ' + _('Parameters')
1123
1124
        current_sheet_parameters_row_number += 1
1125
1126
        chart_start_row_number = current_sheet_parameters_row_number
1127
1128
        col_index = 0
1129
1130
        for i in range(0, parameters_names_len):
1131
1132
            if len(parameters_data['timestamps'][i]) == 0:
1133
                continue
1134
1135
            line = LineChart()
1136
            data_col = 3+col_index*3
1137
            labels_col = 2+col_index*3
1138
            col_index += 1
1139
            line.title = _('Parameters') + ' - ' + \
1140
                parameters_ws.cell(row=parameters_table_start_row_number, column=data_col).value
1141
            labels = Reference(parameters_ws, min_col=labels_col, min_row=parameters_table_start_row_number + 1,
1142
                               max_row=(len(parameters_data['timestamps'][i])+parameters_table_start_row_number))
1143
            line_data = Reference(parameters_ws, min_col=data_col, min_row=parameters_table_start_row_number,
1144
                                  max_row=(len(parameters_data['timestamps'][i])+parameters_table_start_row_number))
1145
            line.add_data(line_data, titles_from_data=True)
1146
            line.set_categories(labels)
1147
            line_data = line.series[0]
1148
            line_data.marker.symbol = "circle"
1149
            line_data.smooth = True
1150
            line.x_axis.crosses = 'min'
1151
            line.height = 8.25
1152
            line.width = 24
1153
            line.dLbls = DataLabelList()
1154
            line.dLbls.dLblPos = 't'
1155
            line.dLbls.showVal = False
1156
            line.dLbls.showPercent = False
1157
            chart_col = 'B'
1158
            chart_cell = chart_col + str(chart_start_row_number)
1159
            chart_start_row_number += 6
1160
            ws.add_chart(line, chart_cell)
1161
1162
        current_sheet_parameters_row_number = chart_start_row_number
1163
1164
        current_sheet_parameters_row_number += 1
1165
1166
    filename = str(uuid.uuid4()) + '.xlsx'
1167
    wb.save(filename)

myems-api/excelexporters/combinedequipmentenergyitem.py 1 location

@@ 681-842 (lines=162) @@
678
            timestamps_data_all_equal_0(report['parameters']['timestamps']):
679
680
        has_parameters_names_and_timestamps_and_values_data = False
681
    if has_parameters_names_and_timestamps_and_values_data:
682
683
        ################################################################################################################
684
        # new worksheet
685
        ################################################################################################################
686
687
        parameters_data = report['parameters']
688
        parameters_names_len = len(parameters_data['names'])
689
690
        file_name = (re.sub(r'[^A-Z]', '', ws.title))+'_'
691
        parameters_ws = wb.create_sheet(file_name + _('Parameters'))
692
693
        parameters_timestamps_data_max_len = \
694
            get_parameters_timestamps_lists_max_len(list(parameters_data['timestamps']))
695
696
        # Row height
697
        parameters_ws.row_dimensions[1].height = 102
698
        for i in range(2, 7 + 1):
699
            parameters_ws.row_dimensions[i].height = 42
700
701
        for i in range(8, parameters_timestamps_data_max_len + 10):
702
            parameters_ws.row_dimensions[i].height = 60
703
704
        # Col width
705
        parameters_ws.column_dimensions['A'].width = 1.5
706
707
        parameters_ws.column_dimensions['B'].width = 25.0
708
709
        for i in range(3, 12+parameters_names_len*3):
710
            parameters_ws.column_dimensions[format_cell.get_column_letter(i)].width = 15.0
711
712
        # Img
713
        img = Image("excelexporters/myems.png")
714
        parameters_ws.add_image(img, 'A1')
715
716
        # Title
717
        parameters_ws['B3'].alignment = b_r_alignment
718
        parameters_ws['B3'] = _('Name') + ':'
719
        parameters_ws['C3'].border = b_border
720
        parameters_ws['C3'].alignment = b_c_alignment
721
        parameters_ws['C3'] = name
722
723
        parameters_ws['D3'].alignment = b_r_alignment
724
        parameters_ws['D3'] = _('Period Type') + ':'
725
        parameters_ws['E3'].border = b_border
726
        parameters_ws['E3'].alignment = b_c_alignment
727
        parameters_ws['E3'] = period_type
728
729
        parameters_ws['B4'].alignment = b_r_alignment
730
        parameters_ws['B4'] = _('Reporting Start Datetime') + ':'
731
        parameters_ws['C4'].border = b_border
732
        parameters_ws['C4'].alignment = b_c_alignment
733
        parameters_ws['C4'] = reporting_start_datetime_local
734
735
        parameters_ws['D4'].alignment = b_r_alignment
736
        parameters_ws['D4'] = _('Reporting End Datetime') + ':'
737
        parameters_ws['E4'].border = b_border
738
        parameters_ws['E4'].alignment = b_c_alignment
739
        parameters_ws['E4'] = reporting_end_datetime_local
740
741
        parameters_ws_current_row_number = 6
742
743
        parameters_ws['B' + str(parameters_ws_current_row_number)].font = title_font
744
        parameters_ws['B' + str(parameters_ws_current_row_number)] = name + ' ' + _('Parameters')
745
746
        parameters_ws_current_row_number += 1
747
748
        parameters_table_start_row_number = parameters_ws_current_row_number
749
750
        parameters_ws.row_dimensions[parameters_ws_current_row_number].height = 80
751
752
        parameters_ws_current_row_number += 1
753
754
        table_current_col_number = 2
755
756
        for i in range(0, parameters_names_len):
757
758
            if len(parameters_data['timestamps'][i]) == 0:
759
                continue
760
761
            col = format_cell.get_column_letter(table_current_col_number)
762
763
            parameters_ws[col + str(parameters_ws_current_row_number-1)].fill = table_fill
764
            parameters_ws[col + str(parameters_ws_current_row_number-1)].border = f_border
765
766
            col = format_cell.get_column_letter(table_current_col_number + 1)
767
768
            parameters_ws[col + str(parameters_ws_current_row_number-1)].fill = table_fill
769
            parameters_ws[col + str(parameters_ws_current_row_number-1)].border = f_border
770
            parameters_ws[col + str(parameters_ws_current_row_number-1)].font = name_font
771
            parameters_ws[col + str(parameters_ws_current_row_number-1)].alignment = c_c_alignment
772
            parameters_ws[col + str(parameters_ws_current_row_number-1)] = parameters_data['names'][i]
773
774
            table_current_row_number = parameters_ws_current_row_number
775
776
            for j, value in enumerate(list(parameters_data['timestamps'][i])):
777
                col = format_cell.get_column_letter(table_current_col_number)
778
779
                parameters_ws[col + str(table_current_row_number)].border = f_border
780
                parameters_ws[col + str(table_current_row_number)].font = title_font
781
                parameters_ws[col + str(table_current_row_number)].alignment = c_c_alignment
782
                parameters_ws[col + str(table_current_row_number)] = value
783
784
                col = format_cell.get_column_letter(table_current_col_number + 1)
785
786
                parameters_ws[col + str(table_current_row_number)].border = f_border
787
                parameters_ws[col + str(table_current_row_number)].font = title_font
788
                parameters_ws[col + str(table_current_row_number)].alignment = c_c_alignment
789
                parameters_ws[col + str(table_current_row_number)] = round(parameters_data['values'][i][j], 2)
790
791
                table_current_row_number += 1
792
793
            table_current_col_number = table_current_col_number + 3
794
795
        ################################################################################################################
796
        # parameters chart and parameters table
797
        ################################################################################################################
798
799
        ws['B' + str(current_sheet_parameters_row_number)].font = title_font
800
        ws['B' + str(current_sheet_parameters_row_number)] = name + ' ' + _('Parameters')
801
802
        current_sheet_parameters_row_number += 1
803
804
        chart_start_row_number = current_sheet_parameters_row_number
805
806
        col_index = 0
807
808
        for i in range(0, parameters_names_len):
809
810
            if len(parameters_data['timestamps'][i]) == 0:
811
                continue
812
813
            line = LineChart()
814
            data_col = 3+col_index*3
815
            labels_col = 2+col_index*3
816
            col_index += 1
817
            line.title = _('Parameters') + ' - ' + \
818
                parameters_ws.cell(row=parameters_table_start_row_number, column=data_col).value
819
            labels = Reference(parameters_ws, min_col=labels_col, min_row=parameters_table_start_row_number + 1,
820
                               max_row=(len(parameters_data['timestamps'][i])+parameters_table_start_row_number))
821
            line_data = Reference(parameters_ws, min_col=data_col, min_row=parameters_table_start_row_number,
822
                                  max_row=(len(parameters_data['timestamps'][i])+parameters_table_start_row_number))
823
            line.add_data(line_data, titles_from_data=True)
824
            line.set_categories(labels)
825
            line_data = line.series[0]
826
            line_data.marker.symbol = "circle"
827
            line_data.smooth = True
828
            line.x_axis.crosses = 'min'
829
            line.height = 8.25
830
            line.width = 24
831
            line.dLbls = DataLabelList()
832
            line.dLbls.dLblPos = 't'
833
            line.dLbls.showVal = False
834
            line.dLbls.showPercent = False
835
            chart_col = 'B'
836
            chart_cell = chart_col + str(chart_start_row_number)
837
            chart_start_row_number += 6
838
            ws.add_chart(line, chart_cell)
839
840
        current_sheet_parameters_row_number = chart_start_row_number
841
842
        current_sheet_parameters_row_number += 1
843
    ####################################################################################################################
844
    filename = str(uuid.uuid4()) + '.xlsx'
845
    wb.save(filename)