Merge pull request #33 from SDSRV-IDP/vietanh99-update-xlsx

Vietanh99 update xlsx
This commit is contained in:
Đỗ Xuân Tân 2024-02-16 09:21:07 +07:00 committed by GitHub Enterprise
commit 876fbe405d
2 changed files with 18 additions and 33 deletions

View File

@ -434,8 +434,6 @@ def dict2xlsx(input: json, _type='report'):
fill_green = PatternFill(start_color=green, end_color=green, fill_type = "solid")
fill_yellow = PatternFill(start_color=yellow, end_color=yellow, fill_type = "solid")
fill_gray = PatternFill(start_color=gray, end_color=gray, fill_type = "solid")
normal_cell = NamedStyle(name="normal_cell", font=font_black, border=border)
normal_cell_red = NamedStyle(name="normal_cell_red", font=font_red, border=border)
if _type == 'report':
wb = load_workbook(filename = 'report.xlsx')
@ -490,48 +488,35 @@ def dict2xlsx(input: json, _type='report'):
start_index = 4
for subtotal in input:
for key_index, key in enumerate(mapping.keys()):
for key in mapping.keys():
value = get_value(subtotal, mapping[key])
ws[key + str(start_index)] = value
ws[key + str(start_index)].border = border
ws[key + str(start_index)].font = font_black
if 'accuracy' in mapping[key] or 'time' in mapping[key] or 'percent' in mapping[key] or 'speed' in mapping[key]:
ws[key + str(start_index)].number_format = '0.0'
if _type == 'report':
if subtotal['subs'] == '+':
ws[key + str(start_index)].font = font_black_bold
if key_index in [6, 8, 9, 10, 11, 12, 13]:
ws[key + str(start_index)].number_format = '0.0'
if key_index == 0 or (key_index >= 9 and key_index <= 15):
if key in ['A', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q']:
ws[key + str(start_index)].fill = fill_gray
elif key_index == 1:
elif key == 'B':
ws[key + str(start_index)].fill = fill_green
elif key_index >= 4 and key_index <= 8:
elif key in ['C', 'D', 'E', 'F', 'G', 'H']:
ws[key + str(start_index)].fill = fill_yellow
else:
if 'average_accuracy_rate' in mapping[key] and type(value) in [int, float]:
if value < 98:
ws[key + str(start_index)].style = normal_cell_red
ws[key + str(start_index)].number_format = '0.0'
elif 'average_processing_time' in mapping[key] and type(value) in [int, float]:
if value > 2.0:
ws[key + str(start_index)].style = normal_cell_red
ws[key + str(start_index)].number_format = '0.0'
elif 'bad_percent' in mapping[key] and type(value) in [int, float]:
if value > 10:
ws[key + str(start_index)].style = normal_cell_red
ws[key + str(start_index)].number_format = '0.0'
elif 'percent' in mapping[key] and type(value) in [int, float]:
ws[key + str(start_index)].number_format = '0.0'
else :
ws[key + str(start_index)].style = normal_cell
if 'average_accuracy_rate' in mapping[key] and type(value) in [int, float] and value < 98:
ws[key + str(start_index)].font = font_red
elif 'average_processing_time' in mapping[key] and type(value) in [int, float] and value > 2.0:
ws[key + str(start_index)].font = font_red
elif 'bad_percent' in mapping[key] and type(value) in [int, float] and value > 10:
ws[key + str(start_index)].font = font_red
elif _type == 'report_detail':
if 'accuracy' in mapping[key] and type(value) in [int, float] and value < 75:
ws[key + str(start_index)].number_format = '0.0'
ws[key + str(start_index)].style = normal_cell_red
ws[key + str(start_index)].font = font_red
elif 'speed' in mapping[key] and type(value) in [int, float] and value > 2.0:
ws[key + str(start_index)].number_format = '0.0'
ws[key + str(start_index)].style = normal_cell_red
else:
ws[key + str(start_index)].style = normal_cell
ws[key + str(start_index)].font = font_red
start_index += 1

Binary file not shown.