Ir para o conteúdo

Predefinição:Tabela3

De Normas Regulamentadoras
  1. Definição das cores baseadas na legenda da NR 03

cor_n = "#cccccc" # Nenhum (Cinza) cor_p = "#38761d" # Pequeno (Verde) cor_m = "#ffff00" # Moderado (Amarelo) cor_s = "#e67e22" # Substancial (Laranja) cor_e = "#ff0000" # Extremo (Vermelho)

  1. Função auxiliar para criar célula colorida

def celula(valor, cor, cor_texto="#000000"):

return f'{valor}'

  1. Estrutura dos dados da tabela (linhas de conteúdo)
  2. Formato: [Consequência, Probabilidade, [Lista de 12 células de valores]]

dados = [

   ["Nenhuma", "Rara", ["N", "N", "N", "N", "N", "N", "N", "P", "N", "N", "N", "P"]],
   ["Leve", "Remota", ["N", "N", "P", "N", "N", "N", "P", "N", "N", "N", "P", "P"]],
   ["Leve", "Possível", ["N", "N", "P", "N", "N", "N", "P", "N", "N", "P", "P", "P"]],
   ["Leve", "Provável", ["N", "N", "M", "N", "N", "N", "M", "N", "P", "M", "M", "M"]],
   ["Significativa", "Remota", ["N", "N", "M", "N", "N", "N", "M", "P", "M", "M", "M", "M"]],
   ["Significativa", "Possível", ["N", "N", "M", "N", "N", "M", "M", "M", "M", "M", "M", "M"]],
   ["Significativa", "Provável", ["N", "N", "S", "N", "M", "M", "S", "M", "M", "M", "S", "S"]],
   ["Morte/Severa", "Remota", ["N", "N", "S", "M", "M", "M", "S", "M", "M", "S", "S", "S"]],
   ["Morte/Severa", "Possível", ["N", "M", "E", "M", "S", "S", "E", "S", "S", "S", "E", "E"]],
   ["Morte/Severa", "Provável", ["S", "S", "E", "S", "S", "S", "E", "S", "S", "E", "E", "E"]]

]

  1. Mapeamento de cores para os valores

mapa_cores = {"N": cor_n, "P": cor_p, "M": cor_m, "S": cor_s, "E": cor_e} mapa_texto = {"P": "#ffffff", "E": "#ffffff"} # Cores de fonte para melhor contraste

  1. Início do HTML

html = ['

']
  1. Cabeçalhos Complexos
html.append('') html.append('') for _ in range(3): # Repete 3 vezes o cabeçalho de probabilidade html.append('') html.append('')
  1. Linhas de Dados
for linha in dados: html.append('') html.append(f'') html.append(f'')
   for val in linha[2]:
       c = mapa_cores.get(val, "#ffffff")
       ct = mapa_texto.get(val, "#000000")
       html.append(celula(val, c, ct))
html.append('') html.append('
Consequência / ProbabilidadeRaraRemotaPossível
ProvávelPossívelRemotaRara
{linha[0]}{linha[1]}

')

with open("tabela_nr03_completa.txt", "w", encoding="utf-8") as f:

   f.write("\n".join(html))