| @@ 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) |
|
| @@ 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) |
|
| @@ 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) |
|
| @@ 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) |
|